推荐答案
// www.javascriptcn.com code example
import re
# 示例:匹配邮箱地址
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
email = "example@example.com"
if re.match(pattern, email):
print("Valid email")
else:
print("Invalid email")本题详细解读
正则表达式基础
正则表达式(Regular Expression,简称 regex)是一种用于匹配字符串的模式。Python 通过 re 模块提供了对正则表达式的支持。
常用函数
re.match(pattern, string): 从字符串的起始位置匹配正则表达式,如果匹配成功返回一个匹配对象,否则返回None。re.search(pattern, string): 扫描整个字符串并返回第一个成功的匹配。re.findall(pattern, string): 返回字符串中所有与模式匹配的非重叠匹配项的列表。re.sub(pattern, repl, string): 替换字符串中所有匹配正则表达式的部分为repl。
常用元字符
.: 匹配任意单个字符(除了换行符)。^: 匹配字符串的开头。$: 匹配字符串的结尾。*: 匹配前面的字符零次或多次。+: 匹配前面的字符一次或多次。?: 匹配前面的字符零次或一次。{n}: 匹配前面的字符恰好 n 次。{n,}: 匹配前面的字符至少 n 次。{n,m}: 匹配前面的字符至少 n 次,至多 m 次。[]: 匹配括号内的任意一个字符。|: 或操作,匹配|左边或右边的表达式。(): 分组,捕获匹配的内容。
示例解析
// www.javascriptcn.com code example
import re
# 匹配邮箱地址的正则表达式
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
email = "example@example.com"
if re.match(pattern, email):
print("Valid email")
else:
print("Invalid email")^[a-zA-Z0-9_.+-]+: 匹配邮箱的用户名部分,允许字母、数字、下划线、点、加号和减号。@: 匹配邮箱地址中的@符号。[a-zA-Z0-9-]+: 匹配邮箱的域名部分,允许字母、数字和减号。\.: 匹配域名中的点号。[a-zA-Z0-9-.]+$: 匹配顶级域名部分,允许字母、数字、点和减号,并且匹配到字符串的结尾。
注意事项
- 正则表达式中的特殊字符需要使用反斜杠
\进行转义。 re.match只匹配字符串的开头,而re.search可以匹配字符串的任意位置。- 正则表达式的性能在处理大量数据时可能会受到影响,因此在实际应用中需要谨慎使用。