我希望匹配羊毛这个词,其中不跟随(立即或更远)单词 snow
输入数据:
Mary had a little lamb, its fleece was white as snow balls
以下正则表达式不起作用,因为它们都匹配,不应该。我相信我过去已经实现了这个目标但却无法找到。
/(fleece).*(?!snow)/
/(fleece)[\w ]+(?!snow)/
有关信息,这个正则表达式将成为更大的正则表达式的一部分,并且将成为一个替换部分,所以我不能简单地否定整个正则表达式 - 例如。
/something(?!somethingelse)|fleece.*(?!snow)/
答案 0 :(得分:3)
你快到了。将.*
置于否定前瞻内。以下正则表达式只会在fleece
后面跟.*?
任意字符串零次或多次以及字符串snow
时捕获字符串(fleece)(?!.*?snow)
。
\b
OR
如有必要,请使用字边界\b(fleece)\b(?!.*?\bsnow\b)
。
{{1}}