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

如何用Python编写简单的电子邮件验证程序?,python,validation,email,split,alphanumeric,Python,Validation,Email,Split,Alphanumeric,这似乎是一个愚蠢的问题,但如何用Python编写一个简单的电子邮件验证程序呢?我对这个软件很陌生,我错过了几节IT课程,所以我真的不知道该怎么办 就我所知(是的,我知道它没有任何用处): 电子邮件需要有以下模式:[字母数字字符]@[字母数字字符]。[字母数字字符] 然后程序必须确定是否有效,并输出“有效”或“无效” 感谢阅读,任何帮助都将不胜感激 阅读有关regex的内容,他们应该会帮助您:)验证电子邮件的有用regex是: [A-Za-z0-9-_]+(.[A-Za-z0-9-_]+)*@[A

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

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

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

然后程序必须确定是否有效,并输出“有效”或“无效”


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

阅读有关regex的内容,他们应该会帮助您:)验证电子邮件的有用regex是:

[A-Za-z0-9-_]+(.[A-Za-z0-9-_]+)*@[A-Za-z0-9-]+(.[A-Za-z0-9]+)*(.[A-Za-z]{2,})
可以找到对此的解释

以下是一些适用于正则表达式的好教程:


下面是一个关于使用正则表达式在python中验证电子邮件的示例,我将使用一些正则表达式来验证和拆分给定的电子邮件地址。 然后代码将如下所示

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")
重新导入
电子邮件=输入(“请键入电子邮件地址”)
如果重新匹配(“\A(?P[\w\-\u]+)@(?P[\w\-\u]+)。(?P[\w]+)\Z”,电子邮件,重新忽略案例):
打印(“电子邮件有效”)
其他:
打印(“电子邮件无效”)

有关常规表达式的信息,请查看。这里有一个用于轻松测试表达式的函数。

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

你知道正则表达式吗?在这种情况下应该会有帮助不,我想我在研究这个问题的时候看到了上面提到的那些,但是我以前没有使用过。试着先写一些伪代码。对不起,在我发布这个问题之前,我对regex一无所知。谢谢你-这与我到目前为止讨论的有点不同,但它似乎工作得很好!域名标签中不允许使用下划线。这也会拒绝许多有效的地址。你是对的,我给出的正则表达式并没有验证所有可能的电子邮件地址。如果有人真的想知道如何为大多数/所有电子邮件地址获取正则表达式,请看这里:谢谢你的回答-这些对我很有帮助。但不要在现实生活中使用它,因为它会拒绝许多有效地址。@Triplee举一个不匹配的电子邮件示例?
ick。。bar@example.com
<代码>呜呜+呜呜!远%quox*条~zoo@example.net这篇文章的第一行有一个拼写错误,应该是string.isalnum()而不是.isalum()
IN   mystring = "alphanum1234"
OUT  VALID

IN   mystring = "alpha num 1234"
OUT  INVALID

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