我试图在同一个循环中同时使用.join()和.format(),但无法这样做
样本数据:
somelist = [[{'web': 'www.example.com'}], [{'web': 'http://www.example.com/content/vb'}, {'123.123.3968 ': 'tel:123.123.3968'}], [{'web': 'https://example.com/fsdds/'}, {'': 'mailto:abc.xyz@ddaa.com?subject=Inquiry from abc.com%20'}], [{'web': 'https://example.com/svsd'}, {'web': 'http://example.com/vsdv'}, {'098.765.4321 ': 'tel:098.765.4321'}, {'B': 'mailto:xssc.xyz@ddaa.com?subject=Inquiry from xyz.com'}]]
过滤掉电话号码,如下所示:
phn = []
for lst in somelist:
ph_check = []
for ph in lst:
ph_check += [val for val in ph.values() if re.match(r'tel:\(?(\d{3})\)?[^\d]*(\d{3})[^\d]*(\d{4})', val)]
phn.append(', '.join(ph_check) if ph_check else '')
我想将电话号码的格式设置为以下格式,有人可以建议我如何通过以下格式:
"{} {} {}".format(ph_check.group(1), ph_check.group(2), ph_check.group(3))
获取输出为:tel:123.456.7890
但是我希望输出为:123 456 7890
结果:
这使得:
如果您想以所需格式提取所有电话号码,我建议:
输出:
实际上,您并没有从正则表达式返回任何内容,而是使用它来搜索电话号码,如果找到一个电话号码,它将被添加到PHU check中
无论如何,要获得所需的格式,可以删除“tel:”并将“.”替换为“”
或者您可以更改正则表达式,使其返回电话号码中的3组数字
相关问题 更多 >
编程相关推荐