如何使用RegEx捕获与特定单词不同的单词?

时间:2014-02-19 15:03:41

标签: regex regex-negation backreference negative-lookahead

我想知道,我如何捕获任何不完全是“ 黄色 ”的单词。例如:“ red ”。

我尝试过以下正则表达式:

(?!(yellow))

Debuggex Demo

......但我有两个问题:

  1. 它不会捕获(创建反向引用)匹配表达式(例如:“ red ”)
  2. yellowwwwww ”与我的正则表达式不匹配,即使它与“ 黄色 ”不同。
  3. 你可以帮我纠正我的正则表达式吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

怎么样

(?!yellow$)

只有在想要捕获组

时才需要原始正则表达式中的内括号

$确保只有yellow不匹配。如果你想在短语中使用它,请改用

(?!yellow\b)

答案 1 :(得分:0)

要捕获任何非yellow的单词,您可以使用:

\b((?!\byellow\b)\w+)\b

在线演示:https://www.debuggex.com/r/S-qTilRd3WJqUP6x