什么是正则表达式模式,我应该使用哪个模式才能匹配特定的单词,该单词不在另一个特定的单词之后?
例如:
我正在寻找一个“abc”,它不在“xyz”之后出现,因此以下内容将匹配:
xxabc
p abc
以下内容不会生效:
xyz abc
谢谢!
什么是正则表达式模式,我应该使用哪个模式才能匹配特定的单词,该单词不在另一个特定的单词之后?
例如:
我正在寻找一个“abc”,它不在“xyz”之后出现,因此以下内容将匹配:
xxabc
p abc
xyz abc
谢谢!
(?<!xyz)(?<!xyz )abc
abc
和xyz
之间的距离可能会有所不同。如果你只想在字符串中找到以前从未被xyz
紧随其后的abc
,那么你可能需要采用类似于以下的方法:^(?!xyz)*((?!xyz).)*abc
(.(?!xyz))*
和((?!xyz).)*
两个表达式,特别是考虑到第一个表达式是有问题的。当你把点放在前瞻符号的前面时,它不会开始过滤直到第二个字符。这就是为什么你的正则表达式错误地匹配了字符串“xyz abc”的原因。 - Alan Moore
abc
之前立即匹配xyz
失败,还是在abc
的_任何位置_之前匹配xyz
失败? - Jerry