如何用 Python 编写一个简单的电子邮件验证程序? [复制]

Posted

技术标签:

【中文标题】如何用 Python 编写一个简单的电子邮件验证程序? [复制]【英文标题】:How can I write a simple email validation program in Python? [duplicate] 【发布时间】:2015-01-28 05:14:21 【问题描述】:

这似乎是一个愚蠢的问题,但是我怎样才能用 Python 编写一个简单的电子邮件验证程序呢?我对软件很陌生,错过了几节 IT 课程,所以我真的不知道该怎么办。

这是据我所知(是的,我知道它没有任何用处):

email = input ("Please type in an email address ")
splitemail = email.split('@')
emailstr = ''.join(splitemail)
splitemail2 = emailstr.split('.')
print (splitemail2)

电子邮件需要具有以下模式:[alphanumeric character(s)] @ [alphanumeric character(s)] 。 [字母数字字符]

然后程序必须判断is是否有效并输出'VALID'或'INVALID'。

感谢您的阅读,我们将不胜感激。

【问题讨论】:

你知道正则表达式吗?在这种情况下应该会有所帮助 不,我想我在尝试研究这个问题时看到了提到的那些,但我以前没有使用过。 尝试先写一些伪代码 查看docs.python.org/2/library/re.html 抱歉 - 在发布问题之前,我对正则表达式一无所知。 【参考方案1】:

我会使用一些正则表达式来验证和拆分给定的电子邮件地址。 然后代码将如下所示

import re
email = input ("Please type in an email address ")
if re.match("\A(?P<name>[\w\-_]+)@(?P<domain>[\w\-_]+).(?P<toplevel>[\w]+)\Z",email,re.IGNORECASE):
    print("Email is valid")
else:
    print("Email is invalid")

有关正则表达式的信息,请查看here。这里link 可以轻松测试您的表情。

【讨论】:

谢谢 - 这与我目前所介绍的有点不同,但它似乎工作得很好! 域名标签中不允许使用下划线。这也会拒绝许多有效地址。 你说得对,我给出的正则表达式并未验证所有可能的电子邮件地址。如果有人真的想知道如何为大多数/所有电子邮件地址获取正则表达式,请看这里:regular-expressions.info/email.html【参考方案2】:

您可以使用string.isalum() 函数来解决这个问题。

示例:

def validate(mystring):
    if mystring.isalnum():
        print "VALID"
    else:
        print "INVALID"

这是一个进出的例子:

IN   mystring = "alphanum1234"
OUT  VALID

IN   mystring = "alpha num 1234"
OUT  INVALID

IN   mystring = "alpha.num-1234"
OUT  INVALID

【讨论】:

本文第一行有错字,应该是 string.isalnum() 而不是 .isalum()【参考方案3】:

阅读正则表达式,它们应该可以帮助您:) 一个有用的验证电子邮件的正则表达式是:

[A-Za-z0-9-_]+(.[A-Za-z0-9-_]+)*@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]2,)

可以在here找到对此的解释

这里有一些很好的正则表达式教程:

http://fr.slideshare.net/absherzad/java-regular-expression-part-i

http://fr.slideshare.net/absherzad/java-regular-expression-part-ii

这是一个关于 SE 的question,关于使用正则表达式在 python 中验证电子邮件

【讨论】:

感谢您的回答——这些对我真的很有帮助。 但不要在现实生活中使用它,因为它会拒绝许多有效地址。 @tripleee 不匹配的电子邮件示例? ick..bar@example.com; moo+boo!far%quux*bar~zoo@example.net

以上是关于如何用 Python 编写一个简单的电子邮件验证程序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何用python编写计算器

用JavaScript编写计算日期

如何用socket构建一个简单的Web Server

如何用IDLE编写python代码

如何用python编写可使用cmd控制台传入参数的简单四则算式计算器

python 爬虫爱好者必须掌握的知识点“ 协程爬虫”,看一下如何用 gevent 采集女生用头像