我试图在同一个循环中一起使用 .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:[email protected]?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:[email protected]?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
phone_nr = "tel:123.456.7890"
phone_nr[4:].replace('.', ' ')
结果:
123 456 7890
这使得:
import re
somelist = [[{'web': 'www.example.com'}], [{'web': 'http://www.example.com/content/vb'}, {'123.123.3968 ': 'tel:123.123.3968'}], [{'web': 'https://example.com/fsdds/'}], [{'web': 'https://example.com/svsd'}, {'web': 'http://example.com/vsdv'}, {'098.765.4321 ': 'tel:098.765.4321'}]]
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)[4:].replace('.', ' ') if ph_check else '')
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句