Java Regex用于电话号码 - 必须仅包含8位数字且不超过2个短划线

时间:2015-12-02 05:22:09

标签: java regex

我需要你的帮助。我必须形成一个只接受8位数字(没有字母)且没有或少于3个破折号的正则表达式。

它应该接受这些例子:

12345678
1234 5678
1234-5678
123-45-678
12-345-678

它不应该接受这些例子:

1234 (less than 8 digits)
123456789 (more than 8 digits)
-12345678-
!@@#$%
12ABCBDEF (with letters)
12-34-56-78 (more than 3 dashes)

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

^(?=(?:\D*\d){8}$)\d+(?:(?:-\d+){0,2}|(?:\s+\d+){0,1})$

你可以尝试一下。参见演示。

https://regex101.com/r/hE4jH0/20