【问题标题】:How do I capture words that are different from specific word using RegEx?如何使用 RegEx 捕获与特定单词不同的单词?
【发布时间】:2014-02-19 15:03:41
【问题描述】:

我想知道,我如何捕捉任何不完全是“yellow”的单词。例如:“红色”。

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

(?!(yellow))

Debuggex Demo

...但我有两个问题:

  1. 它不会捕获(创建反向引用)以匹配表达式(例如:“red”)
  2. yellowwwwww”与我的正则表达式不匹配,即使它与“yellow”不同。

你能帮我纠正我的正则表达式吗? 谢谢!

【问题讨论】:

  • 你的字符串是什么?只是一个词,还是多个用空格隔开?

标签: regex regex-negation backreference negative-lookahead


【解决方案1】:

怎么样

(?!yellow$)

仅当您想捕获组时,才需要原始正则表达式中的内括号

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

(?!yellow\b)

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 这与yellowwww 不匹配,而 OP 想要这样做:/ 你可能应该使用像 \b((?!yellow\b)\w+)\b 这样的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多