Python爬虫 正则表达式应用详解
Python爬虫(二十一)
学习Python爬虫过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。
—— 正则表达式应用详解 ——
1. 简介
正则表达式:regular expression,也称regex,简称 RE
-
正则表达式是用来简洁表达一组字符串的表达式
-
通用的字符串表达框架
-
简洁表达一组字符串的表达式
-
针对字符串表达“简洁”和“特征”思想的工具
-
判断某字符串的特征归属
-
-
正则表达式在文本处理中十分常用
-
表达文本类型的特征(病毒、入侵等)
-
同时查找或替换一组字符串
-
匹配字符串的全部或部分
-
-
正则表达式的使用
- 编译:将符合正则表达式语法的字符串转换成正则式表达特征
- 编译:将符合正则表达式语法的字符串转换成正则式表达特征
2. 语法
正则表达式语法由字符和操作符构成
- 正则表达式的常用操作符
操作符 | 说明 | 实例 |
---|---|---|
. | 表示任何单个字符 | |
[ ] | 字符集,对单个字符给出取值范围 |
[abc] 表示a、b、c,[az] 表示a到z单个字符 |
[^ ] | 非字符集,对单个字符给出排除范围 |
[^abc] 表示非a或b或c的单个字符 |
* | 前一个字符0次或无限次扩展 |
abc* 表示 ab、abc、abcc、abccc等 |
+ | 前一个字符1次或无限次扩展 |
abc+ 表示 abc、abcc、abccc等 |
? | 前一个字符0次或1次扩展 |
abc? 表示 ab、abc |
| |
左右表达式任意一个 |
|abc|def 表示 abc、def |
{m} | 扩展前一个字符m次 |
ab{2}c 表示 abbc |
{m,n} | 扩展前一个字符m至n次(含n) |
ab{1,2}c 表示 abc、abbc |
^ | 匹配字符串开头 |
^abc 表示abc且在一个字符串的开头 |
$ | 匹配字符串结尾 |
abc$ 表示abc且在一个字符串的结尾 |
( ) | 分组标记,内部只能使用 | 操作符 |
(abc) 表示abc,(abc|def) 表示 abc、def |
\d | 数字,等价于[0-9] | |
\w | 单词字符,等价于[A-Z,a-z,0-9] |
正则表达式实例
经典正则表达式实例
匹配IP地址的正则表达式
IP地址字符串形式的正则表达式(IP地址分分4段,每段0255) \d+.\d+.\d+.\d+ \d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} 不精确
精确写法
0-99: [1-9]?\d 100-199: 1\d{2} 200-249: 2[0-4]\d 250-255: 25[0-5]
(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])