使用RegEx查找不在另一个单词之后的单词

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)

谢谢!

πόδ*_*κύς 5

最简单的方法是负面的后观断言:

(?<!xyz)(?<!xyz )abc
Run Code Online (Sandbox Code Playgroud)

但是,您在字母组之间的间距变化表明您可能会看到abc和之间的距离有一些变化xyz.如果你只想找到abc,如果字符串前面的xyz之前从未出现过,那么你可能还需要更多的东西:

^(?!xyz)*((?!xyz).)*abc
Run Code Online (Sandbox Code Playgroud)

后一个正则表达式使用等价的反向匹配而不是负向的后向断言.