正则表达式
常用语法
字符
语法 | 说明 | 表达式案例 | 完整匹配字符串 |
---|---|---|---|
一般字符 | 匹配自身 | 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 对象(数据量大)