Skip to main content
 首页 » 编程设计

python之Python 中的电话号码正则表达式 (Regex)

2025年05月04日28pengyingh

Dive into python 提供了一个关于为电话号码创建正则表达式的惊人小教程:http://diveintopython3.ep.io/regular-expressions.html#phonenumbers

最终版本看起来像:

phone_re = re.compile(r'(\d{3})\D*(\d{3})\D*(\d{4})\D*(\d*)$', re.VERBOSE) 

这几乎适用于我能想到的所有示例,但是我发现了一个我似乎无法修复的相当大的错误。

如果一组 3 位数字出现在电话号码之前,它就可以正常工作。 IE: “减 500 美元,请调用 123-456-7891”

如果电话号码后面出现一组 3 位数字,则失败。 IE: “调用 123-456-7891 最高可享受 500 的折扣”

关于对这两个示例都适用的修复有什么想法吗?

请您参考如下方法:

(\d*)$ 要求您匹配的字符串以数字字符结尾($ 表示“行尾”)。如果您匹配的是电话号码可能不在行尾的较大字符串,请尝试删除 $。