用于在遇到加号(+)时强制使用国家代码的正则表达式

2024-05-06 18:30:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从文本中提取电话号码。我的问题是,我的正则表达式当前与文本的粗体部分匹配

+00 0000
+00.000.000.0000
+00-000-000-0000
+000000000000

但它不应该匹配,因为它以a+开头,国家代码(+00)不存在

我现在的正则表达式是:

((?:00|\+)
(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)|\((?:00|\+)
(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)\))?
(?:(?:[-\.\s]??\d)|(?:[-\.\s]?\(?\d\)?)){4,11}

我怎样才能修好它?我将感谢您的支持

编辑 添加了带有一些测试电话号码和regex的regex101链接 https://regex101.com/r/lLuP1E/1


Tags: 代码https文本com编辑链接电话号码国家