2017-03-29 101 views
1

我想用引號將字/子串CODE作爲字符串的一部分進行匹配。例如:用引號括起來的字符串的子串的正則表達式

text "bla CODE bla" text <- match 'CODE' 
text "MYCODE" text <- match 'CODE' 
"test_CODE_bla" text <- match 'CODE' 
text CODE "text" <- no match 

(?<=")(.*)CODE(.*)(?=")整個字符串在引號,不只是文字CODE匹配。 但類似(?<=".*)CODE(?=.*")不起作用。我的錯誤在哪裏? 我正在使用記事本++搜索&替換爲Boost RegEx(有點類似Perl語法!?)。

鏈接:https://regex101.com/r/zkfRMC/1

任何幫助表示讚賞。

+0

事情是[本](https://regex101.com/r/zSe1PC/1)? –

+0

什麼是您正在使用的正則表達式引擎? 。淨? –

+0

@WiktorStribiżew:我使用的是使用Perl Regex的Notepad ++。 – mh333

回答

1

它是每行一個帶引號的字符串,沒有嵌套的引號。

您可以使用

"[^"\n]*\KCODE(?=[^"\n]*") 

甚至

".*?\KCODE(?=.*") 

regex demo

詳細

  • " - 字面雙引號
  • [^"\n]* - 0+字符比"其他與LF
  • \K - 匹配復位操作丟棄所有的文本匹配至今
  • CODE - 你需要的子
  • (?=[^"\n]*") - 有必須是"和LF之外的0+字符,然後在當前位置後立即輸入"

enter image description here

+0

作品完美無瑕,謝謝。如果沒有多少努力,那麼您可以自由地爲每行包含多個帶引號的字符串提供解決方案 - 適用於所有通過Google來到這裏的人。沒有壓力雖然:) – mh333

+0

這並不容易,而且很容易出現問題。 –

相關問題