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

正则表达式匹配特定字符串:修正匹配全量的正则模式

修正后的正则表达式方案

问题分析

你原正则的核心问题是正向否定预查的位置错误,(?!HSAC|VOG)仅检查当前位置后是否不是这两个字符串,但.*会匹配任意内容到行尾,导致预查失去排除作用。结合你给出的匹配/不匹配规则,实际需要排除两类记录:

  1. O/后仅为VOG或HSAC(无+的情况)
  2. O/后为VOG+HSAC或HSAC+HSAC(有+且最终后缀为HSAC的情况)

修正后的正则

/^PF\s*(?:XAP|FNI)?\s*O\/\s*(?!(?:VOG|HSAC)(?:\s*\+\s*HSAC)?$).*$/gm

正则解释

  • ^:匹配行起始位置,确保从记录开头匹配
  • PF\s*(?:XAP|FNI)?\s*O\/:匹配前缀部分,支持PF后带可选的XAP/FNI(中间可穿插任意空格),以及O/前后的空格
  • \s*:匹配O/后的任意空格
  • (?!(?:VOG|HSAC)(?:\s*\+\s*HSAC)?$):核心排除逻辑的正向否定预查,直接排除两种不符合要求的记录:
    • 行尾是VOG或HSAC(无+的无效记录)
    • 行尾是VOG+HSAC或HSAC+HSAC(有+且最终后缀为HSAC的无效记录)
  • .*:匹配剩余的任意有效内容
  • $:匹配行结束位置
  • gm:全局多行模式,适配多记录的行匹配场景

验证结果

所有你列出的应匹配记录都会被正确命中,所有不应匹配记录都会被排除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:35:15