正则表达式基本语法
在使用 Python 编写爬虫的过程中,re 模块通常做为一种解析方法来使用。通过审查网页元素来获取网页的大体结构,然后使用解析模块来提取你想要的网页信息,最终实现数据的抓取。本节对正则表达式基本语法做简单讲解。
注意:学习本节知识之前,您应该已经掌握了正则表达式的使用方法。
正则表达式元字符
下表列出了常用的正则表达式元字符:
1) 元字符
元字符 | 匹配内容 |
|---|---|
. | 匹配除换行符以外的任意字符 |
\w | 匹配所有普通字符(数字、字母或下划线) |
\s | 匹配任意的空白符 |
\d | 匹配数字 |
\n | 匹配一个换行符 |
\t | 匹配一个制表符 |
\b | 匹配一个单词的结尾 |
^ | 匹配字符串的开始位置 |
$ | 匹配字符串的结尾位置 |
\W | 匹配非字母或数字或下划线 |
\D | 匹配非数字 |
\S | 匹配非空白符 |
a|b | 匹配字符 a 或字符 b |
() | 正则表达式分组所用符号,匹配括号内的表达式,表示一个组。 |
[...] | 匹配字符组中的字符 |
[^...] | 匹配除了字符组中字符的所有字符 |
2) 量词
量词 | 用法说明 |
|---|---|
* | 重复零次或者更多次 |
+ | 重复一次或者更多次 |
? | 重复0次或者一次 |
{n} | 重复n次 |
{n,} | 重复n次或者更多次 |
{n,m} | 重复n到m次 |
3) 字符组
有时也会出现各种字符组成的字符组,这在正则表达式中使用[]表示,如下所示:正则 | 待匹配字符 | 匹配结果 | 说明 |
|---|---|---|---|
[] | 8 | True | 在一个字符组里枚举所有字符,字符组里的任意一个字符 和"待匹配字符"相同都视为可以匹配。 |
[] | a | False | 由于字符组中没有 "a" 字符,所以不能匹配。 |
[0-9] | 7 | True | 也可以用-表示范围,[0-9] 就和 [] 是一个意思。 |
[a-z] | s | True | 同样的如果要匹配所有的小写字母,直接用 [a-z] 就可以表示。 |
[A-Z] | B | True | [A-Z] 就表示所有的大写字母。 |
[0-9a-fA-F] | e | True | 可以匹配数字,大小写形式的 a~f,用来验证十六进制字符。 |
贪婪模式非贪婪模式
正则表达式默认为贪婪匹配,也就是尽可能多的向后匹配字符,比如 {n,m} 表示匹配前面的内容出现 n 到 m 次(n 小于 m),在贪婪模式下,首先以匹配 m 次为目标,而在非贪婪模式是尽可能少的向后匹配内容,也就是说匹配 n 次即可。贪婪模式转换为非贪婪模式的方法很简单,在元字符后添加“?”即可实现,如下所示:
元字符(贪婪模式) | 非贪婪模式 |
|---|---|
* | *? |
+ | +? |
? | ?? |
{n,m} | {n,m}? |
正则表达式转义
如果使用正则表达式匹配特殊字符时,则需要在字符前加\表示转意。常见的特殊字符如下:* + ? ^ $ [] () {} | \
- 随机文章
- 马尔代夫海洋风(马尔代夫海域的浪漫海洋纷呈景色)
- 中山马尔代夫签证(中山市民前往马尔代夫办理签证的指南)
- 亚 马尔代夫(后的:探索神秘的马尔代夫探秘亚马尔代夫之旅)
- 中国马尔代夫球迷(中国球迷在马尔代夫热情迎接足球赛事)
- 商城马尔代夫海滩(马尔代夫商城沙滩——在这儿买买买!)
- 杀手 马尔代夫 医生(马尔代夫医生疑因职业问题被杀害)
- 太原马尔代夫现状(太原市场现状:马尔代夫游客逐渐回归)
- 兔子军舰马尔代夫(后的:兔子装甲车在马尔代夫城市游荡)
- 唐山北方马尔代夫(唐山建设中国北方马尔代夫引游客热议)
- 在马尔代夫吃泡面(在马尔代夫享用泡面,你准备好了吗?)
- 怎么出发马尔代夫(从哪里开始,探索马尔代夫:旅行指南)
- 无锡宜兴马尔代夫(无锡宜兴打造“马尔代夫式”度假胜地)
- 嵩县马尔代夫门票(嵩县马尔代夫景区门票,畅游热带风情)
- 山东马尔代夫简介(探访中国马尔代夫:山东省威海市简介)
- 白云郁南马尔代夫(重温梦幻之旅,白云郁南马尔代夫之行)
- 瑞丽马尔代夫学生(瑞丽:探访马尔代夫学童的梦想与努力)
- 茂名马尔代夫火车(茂名再添新世界——马尔代夫火车开通)
- 直飞马尔代夫仪式(直达马尔代夫:您的奢华之旅开始啦!)
- 青岛飞往马尔代夫(青岛至马尔代夫直飞,度假轻松启航!)
- 徐州马尔代夫水上(徐州打造水上天堂,一睹马尔代夫风情)
- 野生马尔代夫海参(马尔代夫神秘生物:野生海参揭开面纱)
- 马尔代夫中国酒吧(中国酒吧惊艳马尔代夫:恍如置身故乡)
- 牟平马尔代夫规划(规划出炉!牟平打造马尔代夫风情小镇)
- 马尔代夫传统美食(探索马尔代夫美味佳肴:传统美食介绍)
- 马尔代夫出圈照片(马尔代夫旅拍再创新高,网友赞不绝口)
- 马尔代夫临空经济(马尔代夫空经济:临空特区引领新发展)
- 马尔代夫北部潜水(马尔代夫北部海域探险:绝佳潜水之旅)
- 马尔代夫冰糖猫眼(马尔代夫岛上发现稀有的白色猫眼宝石)
- 总督 马尔代夫(马尔代夫新总督就职,将推动经济发展和民主改革)
- 马尔代夫回程机票(预定马尔代夫返程机票,让旅程更完美)
