0

我想匹配单词snow后面没有(立即或更远)的羊毛

输入数据:

Mary had a little lamb, its fleece was white as snow balls

以下正则表达式不起作用,因为它们都匹配,也不应该。我确定我过去已经实现了这一点,但找不到在哪里。

/(fleece).*(?!snow)/
/(fleece)[\w ]+(?!snow)/

有关信息,这个正则表达式将成为一个更大的正则表达式的一部分,并将成为一个替代部分,所以我不能简单地否定整个正则表达式 - 例如

/something(?!somethingelse)|fleece.*(?!snow)/
4

1 回答 1

3

您快到了 。放入.*负前瞻内。下面的正则表达式fleece只有在它后面没有.*?任何字符零次或多次和一个字符串时才会捕获字符串snow

(fleece)(?!.*?snow)

或者

\b必要时使用单词边界。

\b(fleece)\b(?!.*?\bsnow\b)

演示

于 2015-01-27T08:20:53.243 回答