1.各种方法
import re #findall:匹配字符串中所有的符合正则的内容 lst=re.findall(r"\d+","我电话:192334,他的电话3434") print(lst) #finditer:匹配字符串中所有的符合正则的内容(返回迭代器), iter=re.finditer(r"\d+","我电话:192334,他的电话3434") for m in iter: print(m.group()) #re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none iter=re.match(r"\d+","192334,他的电话3434") print(iter) if iter: print(iter.group()) #re.search 扫描整个字符串并返回第一个成功的匹配。 iter=re.search(r"\d+","我的电话192334,他的电话3434") print(iter) if iter: print(iter.group()) #预加载 pattern=re.compile(r'\d+?e34f(?P<test>.*?)ur') m=pattern.match('2one12twothree34four', 0, 10) # print(m.group()) m1=pattern.finditer("'2one12twothree34four'",re.S) print("=========") for i in m1: print("test",i.group("test"))
2.事例
import requests import re url='https://movie.douban.com/top250' #添加请求头 dic={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36" } resp=requests.get(url,headers=dic) # print(resp.text) html=resp.text #print(html) #re.S:让.匹配换行符 pattern=re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<title>.*?)</span>.*?<br>(?P<year>.*?) ',re.S) print(type(html)) result=pattern.finditer(html) for i in result: print(i.group("title")) print(i.group("year").strip())