我使用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)
[]
我想抓住实际的电子邮件,但上面的内容无效。我怎么能这样做?
答案 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