Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我写了这个正则表达式来识别美国类型的电话号码:
\(?\d{3}\)?(-|\s)\d{3}-\d{4}
这适用于电话号码,例如:
217-244-2424 和 (217) 244-2424。
但是它也适用于不平衡的括号,例如 (217-244-2424
如何改进正则表达式以确保括号平衡?(我知道之前提出的关于正则表达式电话号码的问题,但我无法从那里找到我想要的东西。)
我会回答你关于正则表达式的具体问题。您可以尝试这样的事情来处理括号:
^(\(\d{3}\)|\d{3})-(\d{3})-(\d{4})$
我没有测试过,但为什么不使用交替运算符(“|”)?您可以选择同时使用括号,也可以都不使用:
(\(\d{3}\)|\d{3})(-|\s)\d{3}-\d{4}