re模块包含对于正则表达式的运用的函数。
重点知识:
- findall
- finditer
- search
- (?P正则)
- group()
import re
test = "我今年18888岁, 有4个爱好"
# # 1.从一个字符串中提取到所有的数字
# lst = re.findall('\d+', test)
# print(lst)
# # 2.判断一句话中是否有数字,搜索数据常用
# # search的特点:匹配字符串,匹配到第一个结果就返回,不会匹配多个结果
# res = re.search('\d+', test)
# print(res.group())
# print(res.group())
# # 3.finditer,所有的数据都会进行匹配,返回迭代器,爬虫常用
# it = re.finditer("\d+", test)
# for item in it:
# print(item.group())
# # match 匹配,从头开始匹配 ^,主要用于手机号,邮箱号的匹配,得到一个结果就返回
# now = re.match("\d+",test)
# print(now)
#
# now1 = re.match("\d+", "1281jsdd323as")
# print(now1.group())
# 根据数字进行切割
# result = re.split("\d", "1281jsdd323as")
# print(result)
# ['', '', '', '', 'jsdd', '', '', 'as']
# 爬虫必会的一个重点,为了避免转义字符的问题,可以在字符串前面写'r'让字符串不识别转义字符
# 1. () 括起来的内容是最终想要的结果
# 2. (?P<name>正则) 把正则陪陪道德内容直接放在name组里面,后面取数据的时候直接group(name)
# 预编译
obj = re.compile(r"我今年(?P<age>\d+)岁, 有(?P<hobby>\d+)个爱好")
result = obj.finditer("我今年18888岁, 有4个爱好")
for item in result:
print(item.groupdict())