匹配除指定字符串外的所有内容

我知道以下正则表达式将匹配“红色”,“绿色”或“蓝色”。


red|green|blue

是否有一种简单的方法可以使它匹配除几个指定字符串以外的所有内容?


交互式爱情
浏览 773回答 3
3回答

RISEBY

如果要确保该字符串既不是红色,绿色也不是蓝色,那么caskey的答案就是这样。但是,通常需要确保该行的任何位置都不包含红色,绿色或蓝色。为此,将正则表达式与锚定^并包含.*在否定的lookahead中:^(?!.*(red|green|blue))另外,假设您想要包含单词“ engine”但没有任何这些颜色的行:^(?!.*(red|green|blue)).*engine您可能会认为可以.*将正则表达式的开头作为因素:^.*(?!red|green|blue)engine     # Does not work但是你不能。您必须同时具有两个实例.*才能正常工作。

侃侃尔雅

取决于语言,但是通常可以这样输入否定断言:(?!red|green|blue)(感谢语法修复,以上是有效的Java和Perl,YMMV)
打开App,查看更多内容
随时随地看视频慕课网APP