Python3
我需要帮助创建一个正则表达式,从转发的电子邮件正文中提取姓名和电子邮件,它看起来总是与此类似(真实电子邮件被虚拟电子邮件替换):
> Begin forwarded message:
> Date: December 20, 2013 at 11:32:39 AM GMT-3
> Subject: My dummy subject
> From: Charlie Brown <aaa@aa-aaa.com>
> To: maria.brown@aaa.com, George Washington <george@washington.com>, =
thomas.jefferson@aaa.com, thomas.alva.edison@aaa.com, Juan =
<juan@aaa.com>, Alan <alan@aaa.com>, Alec <alec@aaa.com>, =
Alejandro <aaa@aaa.com>, Alex <aaa@planeas.com>, Andrea =
<andrea.mery@thomsen.cl>, Andrea <andrea.22@aaa.com>, Andres =
<andres@aaa.com>, Andres <avaldivieso@aaa.com>
> Hi,
> Please reply ASAP with your RSVP
> Bye
我的第一步是将所有电子邮件提取到一个带有自定义函数的列表中,我将整个电子邮件正文传递给该列表,如下所示:
^{pr2}$几天前,我请求A question about extracting names using regex来帮助我构建提取所有名称的函数。我的想法是以后加入这两个组织。我接受了一个符合我要求的答案,并提出了另一个功能:
def extract_names(block_of_text):
p = r'[:,] ([\w ]+) \<'
return re.findall(p, block_of_text)
我现在的问题是让提取的名称与提取的电子邮件匹配,主要是因为有时名称比电子邮件少。所以我想,我最好尝试构建另一个正则表达式来提取姓名和电子邮件
这是我构建这样一个regex的失败尝试。在
[:,]([\w \<]+)([\w.-]+@[\w.-]+\.[\w.-]+)
有谁能帮我提出一个漂亮的、干净的正则表达式,既能抓取姓名又能抓取电子邮件,到元组列表或字典中去吗?谢谢
编辑: Python中regex的预期输出如下所示:
[(Charlie Brown', 'aaa@aaa.com'),('','maria.brown@aaa.com'),('George Washington', 'george@washington.com'),('','thomas.jefferson@aaa.com'),('','thomas.alva.edison@aaa.com'),('Juan','juan@aaa.com',('Alan', 'alan@aaa.com'), ('Alec', 'alec@aaa.com'),('Alejandro','aaa@aaa.com'),('Alex', 'aaa@aaa.com'),('Andrea','andrea.mery@thomsen.cl'),('Andrea','andrea.22@aaa.com',('Andres','andres@aaa.com'),('Andres','avaldivieso@aaa.com')]
你好像想要这样的东西
DEMO
^{pr2}$相关问题 更多 >
编程相关推荐