【发布时间】:2018-03-13 01:23:15
【问题描述】:
我正在尝试从如下所示的文本字符串中提取电话号码:
Some address at some street (123) 456-7890
这是我正在使用的当前正则表达式,但它不会从字符串中提取电话号码:
/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i
无论如何,我都不是正则表达式专家,因此我们将不胜感激。如果可能的话,我希望正则表达式能够识别任何美国电话号码格式,例如:
(123) 456-7890
(123)-456-7890
123 456 7890
123-456-7890
etc...
【问题讨论】:
-
例如以
+31开头的数字呢?还是手机号码?还是只写电话号码而没有分隔符的人? -
看起来您的正则表达式用于匹配电子邮件:-/
-
...
+1 123 4567890呢。使用正则表达式解析电话号码是一个糟糕的主意。每次你认为你已经涵盖了所有情况时,一种新的格式会从不需要的数字格式中出现。 -
@Aaron ... 做得很糟糕
-
@CD001 它肯定不符合 RFC822 ;我会在任何地方认出this monster