我希望将单词/ 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
感谢任何帮助。
答案 0 :(得分:1)
每行引用一个字符串,没有嵌套的引号。
您可以使用
"[^"\n]*\KCODE(?=[^"\n]*")
甚至
".*?\KCODE(?=.*")
请参阅regex demo
<强>详情:
"
- 文字双引号[^"\n]*
- 除"
和LF \K
- 匹配重置运算符,丢弃目前为止匹配的所有文本CODE
- 您需要的子字符串(?=[^"\n]*")
- 除了"
和LF之外必须有0个以上的字符,然后在当前位置之后必须有"
字符。