Skip to main content
 首页 » 编程设计

python之匹配美国电话号码的正则表达式

2025年05月04日26zhwl

我有一些(有点)工作代码来匹配以下格式的美国电话号码:###-###-####

问题是,对于我的 phone_numbers 中的每个 phone_number,我的代码只是点击代码中的 else block :

file = open("results.txt", "w") 
rgxpattern = '^[0-9]{3}-[0-9]{3}-[0-9]{4}$' 
regexp = re.compile(rgxpattern) 
 
for phone_number in phone_numbers: 
    phone_number = str(phone_number) 
    if regexp.match(phone_number):                       
        file.write('\n') 
        file.write(str(phone_number)) 
    else: 
        file.write('BAD#') 

我上面的 rgxpattern 有问题吗?我试过使用:

^[0-9]{3}-[0-9]{3}-[0-9]{4}$ 

和

^\d{3}-\d{3}-\d{4}$ 

示例电话号码:

 111-222-3333   
 777-444-4444   

结果摘录:

BAD#BAD#BAD#BAD# 

有什么想法或帮助吗?

请您参考如下方法:

如果您的“示例电话号码”是准确的,那么每个电话号码前后都有空格,这应该可以解决问题:

^\s*\d{3}-\d{3}-\d{4}\s*$