我有包含电子邮件地址的长字符串。他们中的大多数都有以下形式的重复:
addresses = 'zzz@zzz.com <zzz@zzz.com>, aaaaa@aaa.co.uk <aaaaa@aaa.co.uk>, bbb@bbb.org <bbb@bbb.org>,'
等
我想删除&lt;&gt;内的副本,因此字符串将是
addresses = 'zzz@zzz.com, aaaaa@aaa.co.uk, bbb@bbb.org,'
等
不幸的是我无法在Python 3中整合正确的Regex。任何人都可以帮助我吗?
答案 0 :(得分:2)
您只需在<>
:
import re
addresses = 'zzz@zzz.com <zzz@zzz.com>, aaaaa@aaa.co.uk <aaaaa@aaa.co.uk>, bbb@bbb.org <bbb@bbb.org>,'
emails = ', '.join(re.findall("\<(.*?)\>", addresses))
输出:
'zzz@zzz.com, aaaaa@aaa.co.uk, bbb@bbb.org'
要明确删除它们之间的括号和地址:
emails = re.sub("\<.*?\>", '', addresses)
输出:
'zzz@zzz.com , aaaaa@aaa.co.uk , bbb@bbb.org ,'
有人向我指出,在POSIX中使用时,转义<>
并不是一个好主意。相反,这可以做到:
new_data = ', '.join(i for i in addresses.split() if "<" not in i and ">" not in i)