4

为了匹配不在另一个特定单词之后的特定单词,我应该使用什么正则表达式模式?

例如:

我正在寻找不在“xyz”之后的“abc”,因此以下内容将匹配:

xxabc

p abc

以下不会:

xyz abc

谢谢!

4

2 回答 2

5

最简单的方法是否定的lookbehind断言:

(?<!xyz)(?<!xyz )abc

但是,您在字母组之间的间距变化表明您可能会看到abc和之间的距离有所变化xyz。如果您只想找到 abc之前在字符串中从未出现过 xyz 的情况,那么您可能需要更多类似以下内容的内容:

^(?!xyz)*((?!xyz).)*abc

后一个正则表达式使用反向匹配的等价物,而不是否定的后向断言。

于 2013-12-29T16:51:53.830 回答
0

你需要这样的东西:

(?<!xyz )abc

正则表达式可视化

调试演示

但是语法会有所不同,具体取决于您使用的语言。例如,这种语法在 JavaScript 中不起作用。

于 2013-12-29T16:51:13.413 回答