【问题标题】:How to apply regex pattern for mobile numbers and landline numbers如何为手机号码和座机号码应用正则表达式模式
【发布时间】:2013-12-18 14:08:59
【问题描述】:

我想应用正则表达式模式来识别美国、英国和印度等国家/地区的所有手机号码和固定电话号码。 目前我正在使用以下模式

(?:+\s*\d{2}[\s-])?(?:\d[-\s]){10}

不幸的是,它只能识别10 没有国家代码的数字。另外,如果有人知道一个好的正则表达式来识别固定电话号码,请告诉我。

【问题讨论】:

  • 有很多这样的例子,这是最难正确的正则表达式之一(以及电子邮件)。只需谷歌它。 Google 应该永远是您的首选。

标签: android regex string


【解决方案1】:
^(([^\.\-\,a-wy-z]([\(]?(\+|[x])?\d+[\)]?)?[\s\.\-\,]?([\(]?\d+[\)]?)?[\s\.\-\,]?(\d+[\s\.\-\,]?)+[^\.\-\,a-z])|((\+|[x])?\d+))$

这应该与您要查找的大多数电话号码相匹配。

匹配项

201-654-5932
201 654 5932
(201)-654-5932
201.654.5932
X201.654.5932
+1 201.654.5932
1.123.123.123
020 1234 5678
02-9323-1234
(02) 9323 1234
1-561-555-1212
12345-1234
(913) 451-6461
(+447222)555555
+44 7222 555 555
+91-98-44111112
+91-9844111112
+44(7222)555555
1(240) 652-5009
(0833)1234567-8888
+974-584-5656
+44 07222 555555
1.2123644567
1-(212)-123 4567
1212-364,4321
0-212364345
(658)154-1122
123131312312
875 (489 1568)
(+91)(240) 652-5009

不匹配

+()-
(+)-,.
493 -- 3227341
240/752-5009
(+91)(240)(876867) 652-5009
+974-5dadad32d84-5656
++44 07222 555555
0-234.567/8912
0212\345/6789
652-5009.
652-5009-
652-5009,
.652-5009
-652-5009
,652-5009
1-800-ALPHNUM
a-12-3
(658 154 1122
658 154 1122)

来源:http://regexlib.com/REDetails.aspx?regexp_id=2693

【讨论】:

  • 感谢您提供的答案。是否有任何可能的方法来识别固定电话和手机号码。
  • 当我尝试应用正则表达式模式从地址中获取电话号码时,上述模式不起作用...
猜你喜欢
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多