正则表达式不匹配任何确切的单词

时间:2013-06-05 23:06:15

标签: regex

我需要一个匹配除三个确切单词之外的所有内容的正则表达式。例如,我不希望它匹配红色,绿色和蓝色。所以它不应该匹配红色,绿色或蓝色,但它应该匹配常绿和绿色。

有没有办法在正则表达式中执行此操作?

1 个答案:

答案 0 :(得分:5)

更新

要捕获greensblueberry,我们可以向前瞻添加\b(因此它必须是单数字“蓝色”,“红色”或“绿色” “):

(\b(?!red\b|green\b|blue\b)\w+\b)

results in

东西 绿色 常青树 红色 fred的 蓝色 navyblue 绿色 东西 蓝莓 否则


根据您的正则表达式的风格,您可以使用否定的预测:

(\b(?!red|green|blue)\w+\b)

这基本上意味着:

(                         # begin capture
  \b                      # word delimeter
  (?!red|green|blue)      # exceptions
  \w+                     # capture any word-characters (equiv: [a-zA-Z_])
  \b                      # word delimeter
)                         # end capture

示例:http://regexr.com?354la

东西 绿色 常青树 红色 fred的 蓝色 navyblue 东西 否则