正则表达式
常用语法
字符
| 语法 | 说明 | 表达式案例 | 完整匹配字符串 |
|---|---|---|---|
| 一般字符 | 匹配自身 | abc | abc |
| . | 匹配任意除换行符\n外的字符。在DOTALL模式中也能匹配换行符 |
a.c | abc |
| \ | 转义字符,使后一个字符表示字符本身。 | a.c | a.c |
| […] | 选取字符范围 | a[bcd]e | abe 或 ace 或 ade |
预定义字符集(字符集[…])
| 语法 | 说明 | 表达式案例 | 完整匹配字符串 |
|---|---|---|---|
| \d | 数字:[0-9] | a\dc | a1c |
| \D | 非数字:[^0-9] | a\Dc | abc |
| \s | 空白字符:[<空格>\t\r\n\f\v]空格> | a\sc | a c |
| \S | 非空白字符:[^<空格>\t\r\n\f\v]空格> | a\Sc | abc |
| \w | 单词字符:[A-Za-z0-9_] | a\wc | abc |
| \W | 非单词字符:[^A-Za-z0-9_] | a\Wc | a c |
数量词(字符或(…)之后)
| 语法 | 说明 | 表达式案例 | 完整匹配字符串 |
|---|---|---|---|
| * | 匹配前一个字符0次或无限次。 | abc* | abccc |
| + | 匹配前一个字符1次或无限次。 | abc+ | abccc |
| ? | 匹配前一个字符0次或1次。 | abc? | abc 或 ab |
| {m} | 匹配前一个字符m次。 | ab{2}c | abbc |
| 代码 | 功能 |
|---|---|
| ^ | 匹配字符串开头 |
| $ | 匹配字符串结尾 |
| [^指定字符] | 表示除了指定字符都匹配 |
高级匹配
贪婪模式
(.*)尽可能多的匹配
非贪婪模式
(.*?)一旦匹配到就结束
四大检索方法
- match 开头匹配,只匹配一次
- search 全局匹配,只匹配一次
- findall 匹配所有符号条件的数据,返回是 结果列表(数据量小)
- finditer 迭代对象,迭代 Match 对象(数据量大)