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 的折扣”
关于适用于这两个示例的修复的任何想法?