需求:基于前序匹配的RegEx空格与连字符捕获规则优化
正则表达式匹配修正方案
你当前的正则问题出在分隔符是可选的,导致允许出现连续4位数字的情况。要实现仅在每两位数字之间都有空格或连字符(且分隔符前后必须是完整的两位数字),可以用下面的正则:
\b\d{2}([\s-])\d{2}\1\d{2}\s+\d{8}\b
规则说明:
\d{2}:匹配开头的两位数字([\s-]):捕获第一个分隔符(只能是空格或连字符),记为分组1\d{2}\1:匹配中间两位数字,且必须使用和第一个分隔符完全相同的符号(保证分隔符统一,比如开头用-后面也得用-,开头用空格后面也得用空格)\d{2}:匹配最后一组两位数字\s+:匹配分隔两组数字的一个或多个空格\b:确保匹配的是完整的数字组合,避免和其他字符粘连
匹配验证:
✅ 能正确匹配的格式:
15-14-45 10548965 52 14 56 12584869
❌ 不会错误匹配的格式:
15-1445 10548965 52 1456 12584869
内容的提问来源于stack exchange,提问作者herculesrockefeller
相关产品推荐
相关产品推荐

