如何在Python中编写简单的电子邮件验证程序?

时间:2014-11-29 21:33:38

标签: python validation email split alphanumeric

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

就我而言(是的,我知道它没有做任何有用的事情):

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

电子邮件需要具有以下格式:[字母数字字符] @ [字母数字字符]。 [字母数字字符]

然后程序必须确定是否有效并输出' VALID'或者'无效'。

感谢阅读,任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

我会使用一些正则表达式来验证和拆分给定的电子邮件地址。 然后代码看起来像这样

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")

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

答案 1 :(得分:0)

您可以使用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

答案 2 :(得分:-1)

了解他们应该帮助你的正则表达式:)用于验证电子邮件的有用正则表达式是:

[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

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