如何从"<"和">"之间提取电子邮件地址?

nfw*_*nfw 2 python email text-processing string-formatting

我有一个来自Outlook的分组电子邮件和名称,分号分隔,如下所示:

fname lname <email>; fname2 lname2 <email2>; ... ; fnameN lnameN <emailN>
Run Code Online (Sandbox Code Playgroud)

我想提取电子邮件和分号分隔它们像这样:

email1; email2; ... ; emailN
Run Code Online (Sandbox Code Playgroud)

我怎么能用Python做到这一点?

cwa*_*ole 6

使用正则表达式:

import re
# matches everything which is between < and > (excluding them)
ptrn = re.compile("<([^>]+)>")
# findall returns ['email','email2']. Join concats them.
print '; '.join(ptrn.findall("fname lname <email>; fname2 lname2 <email2>;"))
# email; email2
Run Code Online (Sandbox Code Playgroud)