今天就学习了一个re模块
"""
re模块
#从一个字符中提取到所有的数字
lst = re.findall("d+", "我今年18,我家有5头狗")
结果:['18', '5']
#判断一句话中是否有数字(search,匹配字符串第一个结果就返回,不会匹配多个结果)
res = re.search("d+", "我今年18,我家有5头狗")
返回re.Match对象
需要使用res.group()拿到返回值
#finditer
it = re.finditer("d+", "我今年18,我家有5头狗");
返回迭代器对象
输出:for item in it: print()
#match匹配,从头开始匹配
result = re.match("d+", "我今年18,我家有5头狗")
print(result) 结果为None
result = re.match("d+", "18,我家有5头狗")
print(result) 结果为18
#split切割
result = re.split("d+", "我今年18,我家有5头狗")
print(result)
结果:['我今年',',我家有','条狗']
#subsubn替换
result = re.sub("d+", "要替换的字符", "替换字符串")
result = re.subn("d+", "要替换的字符", "替换字符串") 返回替换后的字符串与替换次数
compile
#先加载这个正则,后面可以直接用这个正则去匹配内容
obj = re.compile("d+")
obj.findall("18,我家有5头狗")
#爬虫必会的一个重点
1.() 括起来的内容是最终要的结果
2.(?P<组名>正则) 把正则匹配到的内容直接放到该组里面。后面取数据直接group(组名)
# r表示该字符串中的正则无效。打印内容
obj = re.compile(r"今年(?Pd+)")
result = obj.finditer("我今年18,我家有5头狗")
for item in result:
print(item.group("age"))
print(item.groupdict()) 直接获取字典
输出该组内容。结果为:18
重点内容:
#findall: 匹配所有,返回列表
#finditer:匹配所有,返回迭代器
#search:匹配到一个结果就返回
#match:从头匹配,得到一个结果就返回
#group:拿到数据的.
#group(组名)
#re.compile()预编译
#()从正则匹配到的结果中拿到指定数据#(?P正则)
"""



