我有一个字符串:
John Smith <jsmith@gmail.com>
我想得到两个变量:
姓名(John Smith)和电子邮件(jsmith@gmail.com)
我该怎么做?
感谢您的帮助!
答案 0 :(得分:18)
有许多形式的有效互联网电子邮件地址比您可能意识到的要多。我建议使用别人的代码来解析它们,比如email.utils.parseaddr。
例如,以下是有效地址:
"Rocky J. Squirrel" <rocky.squirrel@gmail.com>
此处,名称为Rocky J. Squirrel
,而非"Rocky J. Squirrel"
。
以下也是合法的语法,并定期显示在邮件标题中(注意缺少&lt;&gt;分隔符):
rocky.squirrel@gmail.com (Rocky J. Squirrel)
虽然parens中的部分在技术上只是一个“注释”,但大多数邮件客户端将其解释为用户的名称。 (Python的email.utils.parseaddr也是如此。)
要实际进行解析(节省您阅读文档):
>>> import email.utils
>>> email.utils.parseaddr("John Smith <jsmith@gmail.com>")
('John Smith', 'jsmith@gmail.com')