import re
def is_valid_email(email):
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return re.match(pattern, email)
# 测试邮箱
email1 = "test@example.com"
email2 = "invalid_email"
email3 = "another.example@mail.co.uk"
print(is_valid_email(email1)) # 输出: <re.Match object; span=(0, 17), match='test@example.com'>
print(is_valid_email(email2)) # 输出: None
print(is_valid_email(email3)) # 输出: <re.Match object; span=(0, 24), match='another.example@mail.co.uk'>
在上面的示例中,is_valid_email 函数使用了正则表达式来检查邮箱的有效性。
正则表达式模式 r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' 匹配了标准的邮箱格式。这个模式的含义是:
^[a-zA-Z0-9._%+-]+:匹配邮箱的用户名部分,包括字母、数字、下划线、百分号、加号和减号。
@[a-zA-Z0-9.-]+\.:匹配邮箱的域名部分,包括字母、数字、点和减号,以及最后的点。
[a-zA-Z]{2,}$:匹配邮箱的顶级域名部分,包括至少两个字母。
如果邮箱匹配成功,re.match 函数会返回一个匹配对象;如果匹配失败,会返回 None。