我在某处读到可能有一个RegEx,其中前后的字符串不匹配,而是有助于模糊。
例如,我希望RegEx仅匹配" TESTING"从第二行(" defTESTINGghi"),第一行和第二行没有任何内容。
abcTESTINGdef
defTESTINGghi
ghiTESTINGjkl
答案 0 :(得分:2)
如果支持,您可以使用\K
转义序列。 \K
重置报告的匹配的起始点,不再包括任何以前消耗的字符。 肯定前瞻断言前面跟着ghi
。
def\KTESTING(?=ghi)
或者,根据您对先前和后续未匹配的定义,为什么不简单地使用捕获组来捕获所需的子模式?
def(TESTING)ghi
答案 1 :(得分:1)
您可以尝试以下正则表达式仅匹配第二行的字符串TESTING
,
Through positive lookahead and lookbehind,
(?<=def)TESTING(?=ghi)
匹配字符串TESTING仅在def
之后出现,并且必须由ghi
后跟。
TESTING(?=ghi)
仅当字符串TESTING
后跟ghi
时才匹配。
TESTING(?!def|jkl)
匹配字符串TESTING
如果def
或jkl
后面没有。