如何验证包含两个句点的电子邮件地址 (Python)

How to validate an email address with two periods in it (Python)

下面是一个代码片段,当您输入电子邮件地址时,例如 email@gmail.com,它会说它是有效的。

但是,如果我输入电子邮件地址,例如 email@students.school.edu,它会说它无效。我用我自己的学校电子邮件地址尝试了这个,其中有两个句点,它说它无效。

有没有一种方法可以使用正则表达式验证带有一个句点的常规电子邮件地址和带有两个句点的电子邮件地址,如下所示?

import re
email = input ("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")

您可以对电子邮件使用 python 正则表达式标准:

r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)

来源:https://emailregex.com/

因此,在您的原始代码段的上下文中,它将是:

import re
email = input ("Type in an email address: ")

if re.match(r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email):
    print("Email is valid")
else:
    print("Email is invalid")
import re
email = input ("Type in an email address: ")
if email!= "":
    mailValidation = bool(re.search("^[a-zA-Z0-9.]+@[a-zA-Z]+.[comrgin]", email))
    if mailValidation == True:
        print("Validate mail.")
    else:
        print("Please check mail.")

您可以尝试集成一些更复杂的外部解决方案,例如 mailcheck.co 或类似服务。要点是您可以做的不仅仅是正式检查。您可以验证电子邮件是否可用、用户真实姓名、个人资料照片等