我正试图从字符串中提取美国电话号码。从字符串中提取美国电话号码
我已经浏览了网页/ SO,但还没有找到任何适合我需求的解决方案。
说实话,我在网络编程方面拥有2.5年的经验,但我在RegEX上很勉强。
这里是唯一的正则表达式我写(\d{3}+\-\d{3}+\-\d{4}+)
,但它只能检测589-845-2889
这里有电话号码,我想提取。
589-845-2889
(589)-845-2889
589.845.2889
589 845 2889
5898452889
(589) 845 2889
请告诉我怎样才能实现这一壮举在PHP单正则表达式。
编辑:
如果你觉得美国数用户可以输入任何其他格式,还提到,为好,包括在正则表达式为好。
P.S:
其实我想刮Craiglist上和用户可能已经张贴在任何可能的形式他们的电话号码。
589 845-2889'应该匹配吗? – anubhava
是的,用户可以输入他的号码的任何可能的方式 – Umair
[电话号码验证综合正则表达式]的可能重复(http://stackoverflow.com/questions/123559/a-comprehensive-regex-for-phone-number-验证) – hugomg