正则表达式无法匹配字符串PKGx.1234 ... BBA,应如何修正?
正则表达式匹配修正方案
原正则不匹配的原因
- 字符组匹配范围错误:
PKG[0-9]{0,1}仅支持匹配PKG后接0个或1个数字,但目标字符串中PKG后接的是小写字母x,无法命中规则 - 特殊符号未转义:正则中
.是匹配任意字符的通配符,若要匹配字面量英文句号,必须转义为\.,原表达式中多处.未做转义处理 - 多符号匹配逻辑混乱:原表达式中的
\ ...\转义逻辑错误,目标字符串中三个点前后各带1个空格,三个点为字面量句号,需要明确匹配 - 末尾匹配规则冗余:
[A-B]{1}?$中的?表示最后一位可选,与目标字符串末尾固定为BBA的场景不符,{1}属于冗余写法无实际意义
修正后的正则表达式
如果需要匹配你给出的目标字符串格式(PKG后接1个字母/数字、英文句号、1-4位数字、空格、三个句号、空格、末尾为BBA/BBB),可使用:^\bPKG[a-zA-Z0-9]\.[0-9]{1,4} \.{3} BB[A-B]$
验证说明
将目标字符串PKGx.1234 ... BBA代入上述正则,可正常命中匹配。
内容的提问来源于stack exchange,提问作者sahana i.s
相关产品推荐
相关产品推荐

