【问题标题】:Regular Expression Multiple Match Negative正则表达式多重匹配否定
【发布时间】:2020-11-24 06:34:24
【问题描述】:

foo、bar、标签

如果句子不包含以上所有三个单词,我希望我的正则表达式匹配。

foo bar goal

但如果单词都在一起,它不应该匹配。

foo bar tag

我在 Python 中尝试过这个正则表达式,但无法使其工作。

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

有什么想法吗?谢谢。

【问题讨论】:

  • 将所有单词放在一起可能更容易匹配,然后反转测试结果。 if not re.search(...):

标签: python regex regex-lookarounds


【解决方案1】:

您可以像这样嵌套积极的前瞻和消极的前瞻:

^(?!(?=.*foo)(?=.*bar)(?=.*tag)).*$

这里是test cases

【讨论】:

    猜你喜欢
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多