求助:编写匹配最多7位数字组与任意空格的Regex及问题排查
解决方法
你的正则有两个问题导致不符合需求:
- 第二个数字组的量词写错了:
{1-7}是错误语法,正则里表示范围要用逗号,应该是{1,7} - 用
( )*(零个或多个空格)分隔数字组,这会允许数字直接连在一起,比如8位数字会被拆成7位+1位无空格的组,从而被错误匹配
正确的正则应该确保数字组之间必须有至少一个空格分隔,同时每个组最多7位数字,开头结尾允许任意空格:
^\s*\d{1,7}(?:\s+\d{1,7})*\s*$
正则说明:
^\s*:匹配开头任意数量的空格(包括零个)\d{1,7}:匹配第一个1-7位的数字组(?:\s+\d{1,7})*:匹配零个或多个「至少一个空格 + 1-7位数字」的组合,确保后续数字组必须用空格和前面的组分隔\s*$:匹配结尾任意数量的空格(包括零个)
这个正则会拒绝连续的8位及以上数字,只允许由空格分隔的、每组最多7位的数字组合,完全符合你的需求。
内容的提问来源于stack exchange,提问作者CEH74
相关产品推荐
相关产品推荐

