You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Python正则表达式满足多字符串存在/缺失的匹配规则

正确正则写法

import re
# 若匹配文本为纯单行,可去掉re.DOTALL参数
p = re.compile(r'^(?!.*(?:LICENSE INVALID|license does not include))(?=.*2020\.103)(?=.*NORMAL TERMINATION).*$', re.DOTALL)

规则解释

各部分逻辑完全匹配需求:

  • ^:锚定字符串起始位置
  • (?!.*(?:LICENSE INVALID|license does not include)):负向先行断言,只要字符串中存在两个禁止字符串的任意一个,直接匹配失败返回None
  • (?=.*2020\.103):正向先行断言,要求字符串必须存在2020.103,此处\.为转义处理,避免.作为正则元字符匹配任意字符
  • (?=.*NORMAL TERMINATION):正向先行断言,要求字符串必须存在NORMAL TERMINATION
  • .*$:匹配所有符合前面所有断言规则的完整内容

匹配效果验证

所有不符合规则的场景都会返回None,只有同时满足以下两个条件才会返回匹配结果:

  1. 不存在LICENSE INVALID、license does not include任意一个字符串
  2. 同时存在2020.103和NORMAL TERMINATION两个字符串

内容的提问来源于stack exchange,提问作者Consumer of Cat Content

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:45:08