簡體   English   中英

正則表達式刪除兩個特定單詞之間的所有單詞

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM