求助:编写匹配1-30组10位数字加|格式的正则表达式
修正后的正则表达式
^(\d{10}\|){1,30}$
正则规则说明
^:锁定字符串开头,避免前置多余字符(\d{10}\|):定义一组匹配单元,其中\d{10}匹配10位数字(等价于[0-9]{10}),\|转义匹配竖线|(避免被正则当作逻辑或运算符){1,30}:限制上述匹配单元出现1到30次,满足最少1组、最多30组的要求$:锁定字符串结尾,避免后置多余字符
匹配验证
有效案例
1234567890|(单组合法格式)1234567890|1234567890|(两组合法格式)- 连续30组
1234567890|拼接的字符串
无效案例(会被正则排除)
- 数字不足10位:
123456(无竖线且位数不够) - 仅10位数字无竖线:
1234567890(缺少结尾的|) - 含位数不足10位的组:
1234567890|12345(第二组仅5位数字且无竖线) - 超过30组:31组
1234567890|拼接的字符串
原正则问题分析
你之前使用的^([0-9]{10})+((-([0-9]{10})+)+)$存在以下问题:
- 用
-作为组分隔符,不符合需求中用|连接的要求 - 未强制每组以
|结尾,允许无竖线的10位数字存在 - 未限制组的数量范围,既没有上限也未明确最少1组的规则
内容的提问来源于stack exchange,提问作者Aldo R
相关产品推荐
相关产品推荐

