2011-06-02 47 views
5

我有一個字符串:解析名稱和電子郵件的小字符串?

John Smith <[email protected]>

我想獲得兩個變量:

名(約翰·史密斯)和電子郵件([email protected]

我怎麼可能會做那?

感謝您的幫助!

+3

你有什麼,到目前爲止,怎麼不工作? – 2011-06-02 02:54:40

+0

是相同結構中的格式? – tMC 2011-06-02 02:55:06

+2

...以及爲什麼用[RegEx]標記? 'split()'和'strip()'是你所需要的! – Johnsyweb 2011-06-02 02:59:39

回答

17

還有更多形式的有效Internet電子郵件地址比您可能意識到。我會建議使用別人的代碼來解析它們,比如email.utils.parseaddr

例如,下面是一個有效地址:

"Rocky J. Squirrel" <[email protected]> 

這裏,名字是Rocky J. Squirrel,不"Rocky J. Squirrel"

下也是合法的語法和郵件頭經常顯示出來(注意缺乏<>分隔符):

[email protected] (Rocky J. Squirrel) 

雖然在括號部分是技術上只是一個「意見」,大多數郵件客戶端解釋它作爲用戶的名字。 (也是如此Python的email.utils.parseaddr)

要真正做解析(節省您閱讀文檔):

>>> import email.utils 
>>> email.utils.parseaddr("John Smith <[email protected]>") 
('John Smith', '[email protected]') 
相關問題