如何编写正则表达式忽略数字间空格?匹配含空格的10位数字
解决正则表达式忽略数字间空格匹配10位数字的问题
要匹配包含任意位置空格的10位数字,你可以用下面几种简单的正则写法:
方法一:直接匹配数字+可选空格的组合
最直接的写法是允许数字之间穿插任意数量的空格(首尾也可以有空格,不需要的话可以去掉首尾的\s*):
^\s*\d(?:\s*\d){9}\s*$
拆解一下规则:
^和$锁定整个字符串的首尾,避免匹配到更长字符串里的片段\s*匹配0个或多个空白字符(如果只想限定空格,换成*即可)\d匹配第一个数字,后面跟着9次“可选空格+数字”的组合,确保总共有10个数字- 首尾的
\s*是为了兼容字符串前后带空格的情况,比如4874 526395这种也能匹配
方法二:用正向预查确保数字总数
如果你的正则引擎支持正向预查(比如Python、JavaScript、Java等),也可以这么写:
^(?=(?:\D*\d){10}\D*$)[\d\s]+$
这个写法的逻辑是:
- 正向预查
(?=(?:\D*\d){10}\D*$)先检查整个字符串里恰好有10个数字 - 然后
[\d\s]+匹配由数字和空格组成的内容,确保没有其他非数字非空格的字符
这两种方法都能匹配你给出的所有示例:4874526395、4874 526 395、48745 26395,同时会排除数字总数不是10的情况(比如9位数字加空格、11位数字加空格)。
内容的提问来源于stack exchange,提问作者herculesrockefeller
相关产品推荐
相关产品推荐

