2013-12-23 58 views
1

字符串我一直在使用python的imaplib創建了一個郵件對象:我怎樣才能得到實際的電子郵件地址從蟒蛇電子郵件對象

import email 
email_message = email.message_from_string(raw_email) 

>>> f = email_message ['From'] 
>>> f 
'"bob smith" <[email protected]>' 
>>> import re 
>>> re.findall('\$<[^$]*>\$', f) 
[] 

我要搶實際的電子郵件,但上面不工作。我怎樣才能做到這一點?

+1

什麼是 「不工作」 是什麼意思? – Blorgbeard

+0

上述我正則表達式產生一個空集「[]」。我展示我的交互式Python代碼 - 比爾 – user61629

+1

re.findall(「<(.*?)>」,F) – user3020494

回答

3

我不知道所有的美元符號是,但他們是沒有必要的。你想要得到的是方便地放在尖括號內。所以,你需要做的是其中所含捕獲的東西。

這可以用re.search做到:

>>> from re import search 
>>> f = '"bob smith" <[email protected]>' 
>>> search('<(.*?)>$', f) 
<_sre.SRE_Match object at 0x0213A520> 
>>> search('<(.*?)>$', f).group(1) 
'[email protected]' 
>>> 

下面是正則表達式模式的崩潰:

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

感謝奏效。 btw什麼是組(1)? – user61629

+0

@ user61629 - '基團(1)'是由'捕獲的文本'(*?)。這裏是一個參考:http://docs.python.org/2/library/re.html#re.MatchObject.group – iCodez

相關問題