【问题标题】:Parse small string for name and email?解析名称和电子邮件的小字符串?
【发布时间】:2011-06-02 18:51:46
【问题描述】:

我有一个字符串:

John Smith <jsmith@gmail.com>

我想得到两个变量:

姓名 (John Smith) 和电子邮件 (jsmith@gmail.com)

我该怎么做?

感谢您的帮助!

【问题讨论】:

  • 到目前为止你有什么,它怎么不工作?
  • 格式总是采用相同的结构吗?
  • ...为什么用 [RegEx] 标记? split()strip() 就是你所需要的!

标签: python email


【解决方案1】:

有效 Internet 电子邮件地址的形式比您可能意识到的要多。我建议使用别人的代码来解析它们,比如email.utils.parseaddr

例如,以下是一个有效的地址:

"Rocky J. Squirrel" <rocky.squirrel@gmail.com>

这里的名字是Rocky J. Squirrel,而不是"Rocky J. Squirrel"

以下也是合法的语法,并经常出现在邮件标题中(注意缺少 分隔符):

rocky.squirrel@gmail.com (Rocky J. Squirrel)

虽然括号中的部分在技术上只是一个“评论”,但大多数邮件客户端将其解释为用户名。 (Python 的 email.utils.parseaddr 也是如此。)

要实际进行解析(节省您阅读文档的时间):

>>> import email.utils
>>> email.utils.parseaddr("John Smith <jsmith@gmail.com>")
('John Smith', 'jsmith@gmail.com')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    相关资源
    最近更新 更多