代码之家  ›  专栏  ›  技术社区  ›  Joe Beda

反转与regexp匹配[重复]

  •  26
  • Joe Beda  · 技术社区  · 15 年前

    对于PCRE,如何构造仅在字符串为 找到了。

    如果我使用grep(不是grep),我希望使用-v选项。

    一个更具体的例子:我希望我的regexp与iff字符串匹配 foo 在字符串中。所以它会匹配 bar 会不会 foobar .

    6 回复  |  直到 15 年前
        1
  •  49
  •   Daniel Vandersluis    15 年前

    好的,我已经根据您提出的解决方案(它错误地匹配以“test”开头的字符串)优化了正则表达式。

    ^((?!foo).)*$
    

    此正则表达式将只匹配不包含foo的字符串。第一个lookahead将拒绝以“foo”开头的字符串,第二个lookahead将确保在字符串的其他位置未找到foo。

        2
  •  4
  •   Joe Beda    15 年前

    根据丹尼尔的回答,我认为我找到了一些有用的东西:

    ^(.(?!test))*$
    

    关键是您需要对字符串中的每个字符进行否定断言。

        3
  •  2
  •   Community CDub    7 年前

    我已经为某人回答了这个问题,请参阅以下链接:

        4
  •  1
  •   Philippe Leybaert    15 年前

    它几乎是一个复制品。我想你要找的是雷吉士

    ?*!

        5
  •  -1
  •   PhiLho    15 年前

    构建匹配的表达式,然后使用!匹配(…)(逻辑否定) 这可能就是grep的做法…

        6
  •  -1
  •   Amandasaurus    14 年前

    您也可以使用 re.split ,并根据正则表达式进行拆分,从而返回所有与regex不匹配的部分, splitting based on what doesn't match a regularexpression