2011-06-02 40 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]') 
相关问题