《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位数字,则可以正常工作。例如: “500美元折扣,请拨打123-456-7891”
如果电话号码之后有一组3位数字,则会失败。例如: “拨打123-456-7891以获得高达500的折扣”
有什么解决方法可以适用于两种情况吗?