Regex 同一字符串上的不同正则表达式条件
我正试图根据我们的业务逻辑实现电话号码的正则表达式 客户想要的是,手机必须包含8到15个字符的数字,并且还可以包含任何不增加数字计数的空格和点。因此,理论上这应该是有效的:Regex 同一字符串上的不同正则表达式条件,regex,Regex,我正试图根据我们的业务逻辑实现电话号码的正则表达式 客户想要的是,手机必须包含8到15个字符的数字,并且还可以包含任何不增加数字计数的空格和点。因此,理论上这应该是有效的: 3 .... 44444444 因为它包含9个数字 我真的不能再往前走了 ~[0-9\.\ ]{8,15}$ 但很明显,它也将点和空间计算到了极限 甚至可以通过正则表达式实现它吗?据我所知,正则表达式无法验证这一点。但是,您可以全局删除所有空格和点,然后尝试匹配一个正则表达式,该正
3 .... 44444444
因为它包含9个数字
我真的不能再往前走了
~[0-9\.\ ]{8,15}$
但很明显,它也将点和空间计算到了极限
甚至可以通过正则表达式实现它吗?据我所知,正则表达式无法验证这一点。但是,您可以全局删除所有空格和点,然后尝试匹配一个正则表达式,该正则表达式是
^[:digit:]{8,15}$
,据我所知,正则表达式无法验证这一点。但是,您可以全局删除所有空格和点,然后尝试匹配一个正则表达式,该正则表达式是^[:digit:]{8,15}$
正则表达式尝试:
^(?:[ .]*\d){8,15}[ .]*$
这将匹配8到15位数字,任意数量的空格或点出现在其间
- 未捕获的组,
,匹配前面有任何数量的点或空格的任何数字,(?:[.]*\d)
确保数字的范围{8,15}
匹配末尾的任意数量的点或空格[.]*$
^(?:[ .]*\d){8,15}[ .]*$
这将匹配8到15位数字,任意数量的空格或点出现在其间
- 未捕获的组,
,匹配前面有任何数量的点或空格的任何数字,(?:[.]*\d)
确保数字的范围{8,15}
匹配末尾的任意数量的点或空格[.]*$
这是一个非常常见的常见问题解答。通常的建议是去掉不重要的标点符号,然后对剩余的数字字符串进行简单的长度检查。这是一个非常常见的常见问题解答。通常的建议是去掉不重要的标点符号,然后对剩余的数字字符串进行简单的长度检查。