正则表达式和re模块
一、正则表达式
1、常用元字符
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配任意的数字
\n 匹配一个换行符
\t 匹配一个制表符
^ 匹配字符串的开始
$ 匹配字符串的结尾
\W 匹配非字母或数字或下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配匹配字符a或b
() 匹配括号内的表达式,也表示一个组
[] 匹配字符组中的字符
[^] 匹配除了字符组中的所有字符
2、量词
控制前面的元字符出现的次数
* 重复重复重复重复零次或更多次
+ 重复重复重复一次或更多次
? 重复重复零次或一次
{n} 重复n次
{n,m} 重复n到m次
3、贪婪匹配和惰性匹配
.* 贪婪匹配(尽可能的匹配更多的结果)
.*? 惰性匹配(只匹配第一个结果)
二、re模块
# 匹配所有符合的结果
res = re.findall(r"目标内容","原始字符串") # 为防止与转义字符混淆,使用r标记正则表达式
# 生成迭代器
res = re.finditer(r"","") # res是一个迭代器
for item in res:
print(item.group()) # item.group()提取数据
# 匹配第一个符合的结果
res = re.search(r"","")
print(res.group())
# 从字符串的开头进行匹配
res = re.match(r"","")
# 预加载正则表达式
obj = re.compile(r"")
# 使用加载好的正则
res = obj.findall(r"","")
# (?P<名字>正则) 为匹配结果取名
# 分组
obj = re.compile(r"<span id='(?P<id>\d+)'>(?P<name>.*?)</span>) # 只提取出()的匹配结果
标签:字符,匹配,正则表达式,res,re,模块,重复
From: https://www.cnblogs.com/dxmstudy/p/17303632.html