我知道如何使用email.utils.parseaddr()
来解析电子邮件地址。不过,我想分析多个电子邮件地址,比如这个标题的地址部分的列表:python3/email:使用嵌入式逗号解析电子邮件地址列表?
Cc: "abc" <[email protected]>, "www, xxyyzz" <[email protected]>
在一般情况下,我知道我可以像\s*,\s*
一个正则表达式来获取个人地址分裂,但在我的例子中,其中一个地址的名称部分包含一个逗号,因此这个正则表达式会错误地分割头部。
我知道如何手动编写基于状态机的代码来将该地址分割成几部分,并且我也知道如何对与每个电子邮件地址匹配的复杂正则表达式进行编码。我不是在写这样的代码时寻求帮助。相反,我想知道是否有任何现有的python模块可以用来正确拆分这个电子邮件地址列表,所以我不必“重新发明轮子”。
预先感谢您。
[email.utils.parseaddr](https:// doc s.python.org/3.6/library/email.util.html#email.utils.parseaddr)没有做到这一点?似乎与你有的例子一起工作:https://repl.it/Mi08 - 返回(name,email_addr)的元组,而不用第二个名字中的逗号分割 – davedwards
在我的python版本(版本3.6.0)中, 'email.utils.parseaddr(''abc'<[email protected]>,“www,xxyyzz”<[email protected]>')'只返回第一个元组,即'('abc','[email protected]') '...当我在python 2.7.9 – HippoMan
下尝试这个时,情况也是如此......我明白了。在你的例子中,在每个元素上调用'email.utils.parseaddr'之前,你已经手动将头部分割成2个元素的列表。 – HippoMan