regex - 如何改进这个正则表达式?

标签 regex

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

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

这适用于以下电话号码:

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

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

如何改进正则表达式以确保括号平衡? (我知道有关正则表达式电话号码 before 的问题,但我无法从那里找到我要找的内容。)

最佳答案

我将回答您有关正则表达式的具体问题。您可以尝试这样的方法来处理括号:

^(\(\d{3}\)|\d{3})-(\d{3})-(\d{4})$

关于regex - 如何改进这个正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15265487/

相关文章:

c# - C# 中的正则表达式用于密码

java - 如何将所有 youtube 视频网址转换为将代码嵌入到 java 中的字符串中?

regex - 确定正则表达式中存在哪些命名捕获?

ruby - 为什么这个正则表达式不匹配数字和单个字母?

javascript - 简化特定的多个正则表达式和字符串方法

c - 扩展正则表达式是否支持反向引用?

regex - Bash中如何拆分、映射、加入?

Python正则表达式匹配字符串或空格的开头

java - 使用正则表达式替换字符串中出现的所有单词

.net - 通过正则表达式从字符串中获取视频尺寸?