有人可以帮助我吗?
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..
任何帮助?
答案 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)
的操作,这将返回第一个捕获的组。
但是,您仍然会遇到一个问题,即仍应重新计算匹配对象。