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

如何编写满足4项匹配规则的多行正则,排除含NOT_MATCH_THIS的结果

最终实现正则

需保留原有分组结构的话可以使用如下表达式,无需额外开启匹配模式即可支持跨行匹配:

(PAT_A(?:(?!NOT_MATCH_THIS)[^;])*?)(\bPAT_B\b)((?:(?!NOT_MATCH_THIS)[^;])*;)

匹配逻辑说明

  • 以PAT_A作为匹配起点,满足开头规则
  • 用(?:(?!NOT_MATCH_THIS)[^;])*替换原有[^;]*片段:该语法会在匹配每一个非分号字符前,先校验当前位置后方不存在NOT_MATCH_THIS字符串,从根源上禁止区间内出现目标禁用词,覆盖PAT_A到末尾分号的全部范围
  • 中间保留\bPAT_B\b的强制匹配逻辑,满足区间必须包含PAT_B的要求,同时保留原分组用于提取
  • 全程仅匹配非分号字符,最终匹配到的;必然是PAT_A之后出现的第一个分号,满足结尾规则

验证结果

  • 合法用例可正常匹配,三个分组分别对应「PAT_A开头到PAT_B前的内容」、「PAT_B本身」、「PAT_B到结尾分号的内容」,符合原有提取需求
  • 包含NOT_MATCH_THIS的非法用例会被直接拦截,不会返回匹配结果

内容的提问来源于stack exchange,提问作者user31054

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:09:02