正则表达式电话号码中的可选空白

Ada*_*dam 3 c# regex

可能重复:
用于电话号码验证的全面正则表达式

我非常接近需要的完整正则表达式。但是我似乎无法获得允许的可选空白。

正则表达式

^(\(?\d{3}\)?\-?\d{3}\-?\d{4})$
Run Code Online (Sandbox Code Playgroud)

要求-仅这四个

111-111-1111-工程

(111)111-1111-作品

(111)111-111-无法捕获

1111111111-工程

如何在括号后面添加可选空格?

Mic*_*men 5

^(\(?\d{3}\)*\s?\-?\d{3}\-?\d{4})$
Run Code Online (Sandbox Code Playgroud)

* \ s表示0或1个空格字符。

编辑: 实际上,我更喜欢此版本,因为它允许破折号或空格,但不能同时使用两者。还有,表示0或1,*表示0或更大:

^(\(?\d{3}\)?[\s,\-]?\d{3}\-?\d{4})$
Run Code Online (Sandbox Code Playgroud)