ml1*_*123 4 regex negative-lookbehind
什么是我应该使用的RegEx模式,以匹配不在另一个特定单词之后的特定单词?
例如:
我正在寻找"xyz"之后没有的"abc",所以以下内容将匹配:
xxabc
p abc
Run Code Online (Sandbox Code Playgroud)
以下不会:
xyz abc
Run Code Online (Sandbox Code Playgroud)
谢谢!
最简单的方法是负面的后观断言:
(?<!xyz)(?<!xyz )abc
Run Code Online (Sandbox Code Playgroud)
但是,您在字母组之间的间距变化表明您可能会看到abc和之间的距离有一些变化xyz.如果你只想找到abc,如果字符串前面的xyz之前从未出现过,那么你可能还需要更多的东西:
^(?!xyz)*((?!xyz).)*abc
Run Code Online (Sandbox Code Playgroud)
后一个正则表达式使用等价的反向匹配而不是负向的后向断言.