2

我写了这个正则表达式来识别美国类型的电话号码:

\(?\d{3}\)?(-|\s)\d{3}-\d{4}

这适用于电话号码,例如:

217-244-2424 和 (217) 244-2424。

但是它也适用于不平衡的括号,例如 (217-244-2424

如何改进正则表达式以确保括号平衡?(我知道之前提出的关于正则表达式电话号码的问题但我无法从那里找到我想要的东西。)

4

2 回答 2

2

我会回答你关于正则表达式的具体问题。您可以尝试这样的事情来处理括号:

^(\(\d{3}\)|\d{3})-(\d{3})-(\d{4})$
于 2013-03-07T07:38:38.327 回答
0

我没有测试过,但为什么不使用交替运算符(“|”)?您可以选择同时使用括号,也可以都不使用:

(\(\d{3}\)|\d{3})(-|\s)\d{3}-\d{4}
于 2013-03-07T07:39:11.213 回答