【问题标题】:printing all email addresses of a string打印字符串的所有电子邮件地址
【发布时间】:2013-12-13 14:44:48
【问题描述】:

给定一个包含一个或多个电子邮件地址的字符串,我该如何编写函数 打印字符串的所有有效电子邮件地址。 考虑下面的代码,它可以确定字符串是否恰好是电子邮件地址,这意味着它 无法确定字符串是否包含电子邮件地址。 如何开发此代码,以便检查字符串是否包含一个或多个电子邮件地址 然后打印出来?

import re
def check(email):
      return re.match(r'[^@]+@[^@]+\.[^@]+', email) != None

【问题讨论】:

    标签: python regex python-3.x


    【解决方案1】:

    使用 re.findall:

    emails = re.findall('[^@ ]+@[^@ ]+\.[^@ ]+', stringWithEmails)
    

    编辑:嗯,您可能需要更好的 RE 来匹配电子邮件,例如,请参阅 this question

    【讨论】:

    • 你也应该排除空格。
    • @Ingo:你能解释一下你的说法吗?
    • @Faust 因为例如:"STOP-ESM.org" <info@stop-esm.org> 是一个有效的电子邮件地址。
    • 不,info@stop-esm.org 是一个有效的电子邮件地址。 "STOP-ESM.org" <info@stop-esm.org>rcpt-to 标头的有效内容。它们略有不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2011-10-11
    • 1970-01-01
    • 2013-02-04
    • 2018-10-21
    • 2017-10-10
    相关资源
    最近更新 更多