[英]Regular expression to delete all words between two specific words
我通常對正則表達式沒問題,但我正在為此苦苦掙扎。
我有一個簡單的文件,其中包含開始和結束一組數據的兩個單詞。 單詞之間的數據會發生變化,但是 - start 和 status 總是在同一個地方。
例子:
start 介於狀態之間的一切
我正在嘗試解決如何刪除(替換)介於開始和狀態之間的所有內容
我確定我曾經使用過它
(?i)^start.+?status
set(#replaceAll,$replace 正則表達式(#textTest,"(?i)^start.+?status",""),"Global")
但它只是不再工作了。
你可以使用正則表達式
\bstart\b.+?\bstatus\b
它不需要"status"
與"start"
位於同一行。 應該設置兩個標志:
/i
).
匹配換行符 ( /s
)正則表達式讀取,“匹配 'start' 和前后斷詞(例如,避免匹配 'starting' 或 'jumpstart'),然后懶惰地匹配一個或多個字符,然后匹配 'status' 和斷詞”。 中間匹配必須是惰性的,以便正則表達式引擎將在“狀態”的下一個(而不是最后一個)實例處停止。
如果正在使用的正則表達式引擎不支持單行模式或類似的模式,則可以將.+
替換為[\s\S]+
。
所以我原來的表達方式有效,所以加里的劑量
自從我上次使用該表達式以來,文件已更改。 它們包含一些需要首先刪除的換行符形式的空格
set(#cleanup,$replace(#text2,$new line," "),"Global")
set(#text2,$replace regular expression(#cleanup,"\\bstart\\b.*?\\bstatus\\b",""),"Global")
set(#cleanup,$replace regular expression(#cleanup,"(?i)^start.+?status:",""),"Global")
對此感到抱歉,但感謝所有看過並提供幫助的人:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.