正则表达式引号中字符串的子串

时间:2017-03-29 11:35:23

标签: regex string notepad++

我希望将单词/ substring 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(?=.*")之类的东西不起作用。哪里是我的错? 我正在使用Notepad ++ Search&amp; Replace with Boost RegEx(类似于Perl语法!?)。

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

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

  

每行引用一个字符串,没有嵌套的引号。

您可以使用

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

甚至

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

请参阅regex demo

<强>详情:

  • " - 文字双引号
  • [^"\n]* - 除"和LF
  • 以外的0 +字符
  • \K - 匹配重置运算符,丢弃目前为止匹配的所有文本
  • CODE - 您需要的子字符串
  • (?=[^"\n]*") - 除了"和LF之外必须有0个以上的字符,然后在当前位置之后必须有"字符。

enter image description here