前言:
在我们写爬虫时请求网页之后常要提取数据 那么使用re模块正则表达式来> 提取数据是一个很好的办法。
这里只讲2中匹配技巧方法
一些小说明:
.(点):用来匹配任意非空格换行之类的字符
*:一个量词匹配多个或0个 类似于尽可能多的匹配
?: 一个量词匹配0个或1个 类似于尽可能少的匹配
贪婪匹配
.*: .后面加一个量词 * 那么就是尽可能多的匹配
惰性匹配
.? :当在 * 后面再加一个? 那么就是 ?修饰的前面. 那么就是说在 多出匹配的时候 我们取最近的
说的可能不是很清楚推荐个视频吧re模块视频
实际用法
- re.compile(pattern[, flags])
作用:把正则表达式语法转化成正则表达式对象
flags定义包括:
re.I:忽略大小写
re.L:表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M:多行模式
re.S:’ . ’并且包括换行符在内的任意字符(注意:’ . ’不包括换行符)
re.U: 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库- re.search(pattern, string[, flags])
search (string[, pos[, endpos]])
作用:在字符串中查找匹配正则表达式模式的位置,返回 MatchObject 的实例,如果没有找到匹配的位置,则返回 None。- match
re.match(pattern, string[, flags])
match(string[, pos[, endpos]])
作用:match() 函数只在字符串的开始位置尝试匹配正则表达式,也就是只报告从位置 0 开始的匹配情况,而 search() 函数是扫描整个字符串来查找匹配。如果想要搜索整个字符串来寻找匹配,应当用 search()。