【问题标题】:Regex - match string NOT containing one group, DOES contain another正则表达式 - 匹配字符串不包含一个组,包含另一个
【发布时间】:2015-06-01 09:29:52
【问题描述】:

例如,匹配不包含“foo”但包含“bar”的字符串的正则表达式。我没有使用两种表达方式的奢侈。我需要用一种表达方式来完成。

例如:

“这是 foo baz bar” - 不应该匹配
“这是 foo baz” - 应该 不匹配
“这是酒吧” - 应该匹配

我在 Perl,fwiw

【问题讨论】:

    标签: regex perl


    【解决方案1】:

    在开头使用negative lookahead 断言来检查字符串是否不包含任何foo 子字符串。

    ^(?!.*?foo).*bar.*
    

    ^(?!.*?\bfoo\b).*\bbar\b.*
    

    DEMO

    【讨论】:

    • 太棒了,谢谢。负前瞻组中的 .* 是我所缺少的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2017-04-29
    • 1970-01-01
    相关资源
    最近更新 更多