【问题标题】:Match string not containg a certain phrase匹配不包含某个短语的字符串
【发布时间】:2013-10-02 19:35:48
【问题描述】:

我需要在消息中查找“机密”一词的所有实例,除非它在短语“机密和专有”中使用,在这种情况下没关系,我不需要通过正则表达式来获取它。

提前谢谢大家! -P

【问题讨论】:

  • 您使用的是哪个正则表达式引擎?

标签: regex string-matching


【解决方案1】:

您可以使用否定环视 (http://www.regular-expressions.info/lookaround.html)

如果您的引擎支持环视,此正则表达式将匹配:(confidential) (?!and proprietary)

演示:http://regexr.com?36itq

【讨论】:

  • 您的意思是confidential(?! and proprietary),否则我们将替换confidential[SPACE]
  • 这就是为什么我使用 () 来捕获“机密”(我们可以想象使用大写等更精细的东西)。但是,是的,这是另一种解决方案。
【解决方案2】:

使用字边界\b 也是一个选项。

\bconfidential\b(?! and proprietary\b)

【讨论】:

    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 2011-06-02
    • 2021-10-03
    • 2010-11-26
    • 2012-03-24
    相关资源
    最近更新 更多