Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 不匹配任何精确单词的正则表达式_Regex - Fatal编程技术网

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

Regex 不匹配任何精确单词的正则表达式,regex,Regex,我需要一个正则表达式,除了三个确切的单词之外,它可以匹配所有的东西。例如,我不希望它与红色、绿色和蓝色匹配。因此,它不应该匹配红色、绿色或蓝色,而应该匹配常绿和绿色 在正则表达式中有什么方法可以做到这一点吗?Update 要捕获绿色或蓝莓,我们可以在前瞻中添加一个\b(因此它必须是单数单词“蓝色”、“红色”或“绿色”): 其中: 某物 绿色 常青树 红色 弗雷德 蓝色 海军蓝 果岭 某物 蓝莓 否则 根据您的正则表达式风格,您可以使用负面展望: (\b(?!red|green|blue)\w+

我需要一个正则表达式,除了三个确切的单词之外,它可以匹配所有的东西。例如,我不希望它与红色、绿色和蓝色匹配。因此,它不应该匹配红色、绿色或蓝色,而应该匹配常绿和绿色

在正则表达式中有什么方法可以做到这一点吗?

Update 要捕获
绿色
蓝莓
,我们可以在前瞻中添加一个
\b
(因此它必须是单数单词“蓝色”、“红色”或“绿色”):

其中:

某物 绿色 常青树 红色 弗雷德 蓝色 海军蓝 果岭 某物 蓝莓 否则


根据您的正则表达式风格,您可以使用负面展望:

(\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
例如:

某物 绿色 常青树 红色 弗雷德 蓝色 海军蓝 某物
否则

谢谢你,布拉德!这和我想要的很相似,但问题是它和果岭不匹配。这是我无法解决的障碍。任何帮助都将不胜感激。谢谢@ZShah:好吧,拍一张效果很好的照片!非常感谢!!它解决了这个问题,也学到了很多新的东西,特别是在“前瞻”中结合了单词边界。展示你迄今为止所拥有的,你的方法是什么,以及你选择使用的风格。
(                         # begin capture
  \b                      # word delimeter
  (?!red|green|blue)      # exceptions
  \w+                     # capture any word-characters (equiv: [a-zA-Z_])
  \b                      # word delimeter
)                         # end capture