有效的电子邮件检查错

时间:2017-07-21 15:55:25

标签: python

有人可以帮助我吗?

login_mail = raw_input("Email >> ")
login_password = raw_input("Password >> ")
print "[+]Wait Check For Valid Email Address."
match = re.search(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9]+\.[a-zA-Z0-9.]*\.*[com|org|edu]{3}$)",login_mail)
while login_mail != match:
    print "error.."
    login_mail = raw_input("Email >> ")
else:
    print "good"

当我启动程序时,我输入了一个有效的电子邮件示例(test@gmail.com)并打印出error..

任何帮助?

1 个答案:

答案 0 :(得分:1)

问题是re.search会返回MatchObject。参见:

https://docs.python.org/2/library/re.html#regular-expression-objects

您可以通过将while循环条件更改为:

来解决此问题
while not match:
    print 'error'
    login_mail = raw_input('Email >> ')
    match = re.search(...)

在while循环中需要not match来检查返回None的搜索(就像没有匹配时一样)。您不一定需要将匹配与login_mai l进行比较,因为在您的匹配不是None的情况下,它将是login_mail。有可能更好的正则表达式来检查有效的电子邮件,但您所拥有的是一个合理的起点。

如果您确实想要访问匹配文字,可以执行类似match.group(0)的操作,这将返回第一个捕获的组。

但是,您仍然会遇到一个问题,即仍应重新计算匹配对象。