解析XML文件的输出与将字符串硬编码到re中的输出相同

时间:2018-02-07 23:08:08

标签: regex xml python-2.7

我正在解析OpenStreetMaps XML文件并将电话号码重新格式化为标准+1 123 456 7890.我已经为所有不良格式创建了正则表达式,并创建了一个清理它们的函数:

def fix_phone(phone_list):
    bad_format = re.compile(r'(\W\d\s)(\W\d{3}\W\s)(\d{3}\W\d{4}$)')
    for phone in phone_list:
        if bad_format.search(phone):
            phone = phone[0:2]+" "+phone[4:7]+" "+phone[9:12]+" "+phone[13:]

对于电话号码'+1 (720) 406-9696',此功能正在向我提供此结果:'+1 1 ( 0) 06-9696'

这是怎么回事?如果我将这三行代码键入一个新的jupyter单元格中:

phone = '+1 (720) 406-9696'
if re.compile(r'(\W\d\s)(\W\d{3}\W\s)(\d{3}\W\d{4}$)').search(phone):
    print phone[0:2]+" "+phone[4:7]+" "+phone[9:12]+" "+phone[13:]

我得到了所需的结果'+1 720 406 9696'。我错过了什么?

0 个答案:

没有答案