因此,在用户感到困惑之后,我需要为您可能想到的所有电话号码变型调整正则表达式。
我目前有以下正则表达式:
^[+]?[-\s.]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$
它匹配得很好,但我希望能够将其与以下变体匹配:
+44 01726 400480
+44 1726 400480
+44 01726 400480
+44 1726 400 480
01726 400480
01726 400 480
N.B。我知道以前也曾问过类似的问题,但是我觉得添加以上变体对于社区来说是完美的。
答案 0 :(得分:3)
您可以使用
^\+?(?:[- .]?\d{2})?[- .]?\d{4,5}[- .]?\d{3}[- .]?\d{3}$
https://regex101.com/r/DiJLVb/2
请注意,[0-9]
简化为\d
,并且其中仅包含一个字符的字符集简化为该字符。还请注意,如果您只想匹配文字空间,则使用文字空间比\s
可靠一点-否则,其他空格字符(如换行符)也将被匹配,这可能是不希望的。
详细信息:
\+?
-可选加号(?:[- .]?\d{2})?
-可选的前两位数字[- .]?\d{4,5}
-四或五位数字[- .]?\d{3}[- .]?\d{3}
-六位数字,可能用字符分隔答案 1 :(得分:0)
您可以尝试以下https://www.regexpal.com/?fam=105302
^[+]?[-\s.]?[(]?[0-9]{2,3}?[)]?[-\s.]?([0-9]{3,4})?[-\s.]?[0-9]{3,6}[-\s.]?[0-9]{3,6}$