python正则表达式匹配邮箱

2023-02-28 00:00:00 匹配 邮箱 正则表达式

下面是一个常用的 Python 正则表达式示例,用于匹配常见的邮箱格式:

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) is not None

在上面的示例中,使用 re.match() 函数匹配字符串和正则表达式,并返回匹配结果。如果匹配成功,则返回一个 Match 对象,否则返回 None。

正则表达式的含义如下:

  • ^ 表示字符串的开头
  • [a-zA-Z0-9._%+-]+ 表示匹配一个或多个字母、数字、点号、下划线、百分号、加号或减号
  • @ 表示匹配一个 @ 符号
  • [a-zA-Z0-9.-]+ 表示匹配一个或多个字母、数字、点号或减号
  • . 表示匹配一个点号
  • [a-zA-Z]{2,} 表示匹配两个或更多字母,这是一个顶级域名(TLD)
  • $ 表示字符串的结尾
  • 这个正则表达式可以匹配所有常见的邮箱格式,如 username@example.com、user.name@example.com、user-name@example.com、username123@example.co.uk 等。

要验证一个邮箱是否有效,只需要调用上述函数,将需要验证的邮箱作为参数传递给它即可。如果函数返回 True,则表示邮箱有效;如果返回 False,则表示邮箱无效。例如:

print(is_valid_email('john@example.com')) # True
print(is_valid_email('user.name@example.com')) # True
print(is_valid_email('user-name@example.com')) # True
print(is_valid_email('username123@example.co.uk')) # True
print(is_valid_email('invalid-email')) # False

如果你需要更加严格的邮箱验证规则,可以参考 RFC 5322 标准,或者根据自己的需求定制正则表达式。

相关文章