我想匹配除了给定的单词以外的所有内容,所以给定这个列表:
wordOne
wordTwo/xy/z
word-three
word-four/lots/of/stuff
我可以使用这个正则表达式来匹配除了wordOne:
之外的所有内容。(?!wordOne)b.+
==>
wordTwo/xy/z
word-three
word-four/lots/of/stuff
然而,如果我想匹配所有,除了一个包含连字符/破折号的单词,相同的regexp不起作用,因为连字符不是单词边界的一部分-它是[a- za - z0 -9_]
如
some-regexp(word-four)
==>
wordOne
wordTwo/xy/z
word-three
和
some-regexp(word-four and word-three)
==>
wordOne
wordTwo/xy/z
正如我所看到的,您在示例中每行定义一个单词。在这种情况下,这个正则表达式应该为您工作:
^(?:(?!word-four|word-three).)*$
它跳过包含word-four
或word-three
的单词。
根据你的例子:
^(?:(?!wordOne).)*$
==>
wordTwo/xy/z
word-three
word-four/lots/of/stuff
^(?:(?!word-four).)*$
==>
wordTwo/xy/z
word-three
word-four/lots/of/stuff
^(?:(?!word-four|word-three).)*$
==>
wordOne
wordTwo/xy/z