python正则表达式匹配邮箱
下面是一个常用的 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 标准,或者根据自己的需求定制正则表达式。
相关文章