Python-如何检查有效的电子邮件地址?

发布于 2021-02-02 23:15:31

有没有一种使用正则表达式检查表单输入的好方法,以确保它是正确的样式电子邮件地址?自昨晚以来一直在搜索,如果它是子域的电子邮件地址,则回答了有关该主题的人们疑问的每个人似乎也有问题。

关注者
0
被浏览
89
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    无关紧要。即使你可以验证该电子邮件地址在语法上是有效的,你仍然需要检查该电子邮件地址是否未键入错误,以及该地址是否确实属于你认为确实有用的人。唯一的方法是向他们发送电子邮件,并让他们单击链接进行验证。

    因此,最基本的检查(例如,他们没有意外输入街道地址)通常就足够了。喜欢的东西:它只能有一个@标志,和至少一个.在后的部分@

    [^@]+@[^@]+\.[^@]+
    

    你可能还想禁止使用空格-可能有有效的电子邮件地址,其中包含空格,但我从未见过,因此,出现用户错误的可能性就在你身边。

    如果要全面检查,请查看此问题。

    更新:这是你如何使用任何此类正则表达式的方法:

    import re
    
    if not re.match(r"... regex here ...", email):
      # whatever
    

    Python≥3.4具有比re.fullmatch更好的选择re.match

    注意r字符串的前面;这样,你就不必两次逃脱。

    如果要检查的正则表达式数量很多,那么先编译正则表达式可能会更快:

    import re
    
    EMAIL_REGEX = re.compile(r"... regex here ...")
    
    if not EMAIL_REGEX.match(email):
      # whatever
    

    另一个选择是使用该validate_email程序包,该程序包实际上与SMTP服务器联系以验证该地址是否存在。但是,这仍然不能保证它属于正确的人。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看