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

正则表达式匹配问题:指定起止符间14字符匹配异常求助

问题分析

你的正则(02A1)[0-9A-Z]{14}(03)之所以错误匹配目标字符串,是因为它只检查了02A1和03之间恰好有14个字符,但允许这14个字符中包含02A1或03这类你不想出现的子串。

看你给出的错误匹配案例:02A103EEFFFFF702A103,第一个02A1之后的14个字符是03EEFFFFF702A1,后面正好跟着03,完全符合正则的长度要求,所以被错误匹配了。

解决办法

要避免中间的14个字符里出现02A1或03,可以用负向预查来限制每个字符的后续内容,确保不会出现你设定的起始/结束标记:

(02A1)(?:(?!02A1|03)[0-9A-Z]){14}(03)

解释:

  • (?!02A1|03) 是负向预查,确保当前位置之后不会出现02A1或03
  • (?:...) 是非捕获组,把预查和字符匹配打包成一个单元
  • {14} 要求这个单元重复恰好14次,保证中间正好14个符合要求的字符

这样修改后,只有当02A1和03之间的14个字符完全不包含02A1或03时,才会被匹配,就不会出现你遇到的错误情况了。

内容的提问来源于stack exchange,提问作者Alex Bäumler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 04:20:21