一、正则表达式常用的字符集
[abc] 表示匹配a、b、c中的任意一个字符
[a-z] 表示匹配a到z之间的任意一个小写字母
[A-Z] 表示匹配A到Z之间的任意一个大写字母
[0-9] 表示匹配0到9之间的任意一个数字
[^abc] 表示匹配除了a、b、c之外的任意一个字符,^在字符集里表示取反
[0-9a-zA-Z] 表示匹配0-9之间、a-z之间、A-Z之间的任意某个字符
\d 匹配数字,即[0-9]
\D 匹配非数字,即不是数字,[^0-9]
\s 匹配空白,即 空格,tab键(制表符),换行符
\S 匹配非空白
\w 匹配非特殊字符,匹配任意一个字母、数字或下划线,相当于[a-zA-Z0-9_]
\W 匹配特殊字符,匹配任意一个非字母、数字或下划线,相当于[^a-zA-Z0-9_]
二、 re模块的相关方法

1、re.match(pattern, string, flags=0)
res = re.match(r'\d+', '123abc123') # 返回一个对象
if res:
print(res) # <re.Match object; span=(0, 3), match='123'>
print(res.group(), type(res.group())) # 123 <class 'str'>
else:
print('不匹配')
2、re.search(pattern, string, flags=0)
# 返回匹配的第一个位置的值
res = re.search(r'\d+', "ab - 6 5xy")
if res:
print(res.group()) # 6
else:
print('不匹配')
3、re.findall(pattern, string, flags=0)
# 查找所有匹配的值,并返回一个存放匹配结果的列表
res = re.findall(r'\d+', '12abcd45lk09')
print(res) # ['12', '45', '09']
4、re.finditer(pattern, string, flags=0)
# 用于搜索字符串中与正则表达式匹配的所有子串,并返回一个迭代器。
# 取值需要用for循环 + group()
res = re.finditer(r'\d+', '45asd3')
for i in res:
print(i.group()) # 45 3
5、r