如何从python电子邮件对象获取实际的电子邮件地址作为字符串

时间:2013-12-23 02:39:46

标签: python regex email

我使用python的imaplib创建了一个电子邮件对象:

import email
email_message = email.message_from_string(raw_email)

>>> f = email_message ['From']
>>> f
'"bob smith" <bob5@xxxxx.org>'
>>> import re
>>> re.findall('\$<[^$]*>\$', f)
[]

我想抓住实际的电子邮件,但上面的内容无效。我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

我不知道所有的美元符号是什么,但它们没有必要。你想要得到的是方便地放在尖括号内。因此,您需要做的就是捕获其中包含的内容。

可以使用re.search

完成此操作
>>> from re import search
>>> f = '"bob smith" <bob5@xxxxx.org>'
>>> search('<(.*?)>$', f)
<_sre.SRE_Match object at 0x0213A520>
>>> search('<(.*?)>$', f).group(1)
'bob5@xxxxx.org'
>>>

以下是正则表达式模式的细分:

<      # <
(.*?)  # Capture group for zero or more characters
>      # >
$      # End of string