正则表达式是记录文本规则的代码
需要搭配re模块
匹配单个字符:
. | 除了\n不能匹配 |
---|---|
[ ] | [ ]列举的字符于后边字符串开头字符匹配 |
\d | 匹配0-9的数字 |
– | – |
\D | 匹配非数字 |
\s | 匹配空白 |
– | – |
\S | 匹配非空白 |
\w | 匹配数字、大小写字母、下划线 |
– | – |
\W | 匹配非数字、非字母、非汉字 |
匹配多个字符:
* | 匹配前一个字符出现0次或者无限次,即可有可无 |
---|---|
+ | 匹配前一个字符出现1次或者无限次,即至少有1次 |
? | 匹配前一个字符出现1次或者0次,即要么有1次,要么没有 |
– | – |
{m} | 匹配前一个字符出现m次 |
{m,n} | 匹配前一个字符出现从m到n次 |
– | – |
匹配开头、结尾:
^ | 以什么开头 |
---|---|
$ | 以什么结尾 |
[^] | 除指定字符开头的规则 |
– | – |
匹配分组:
匹配左右任意一个表达式 | |
---|---|
(ab) | 将括号中字符作为一个分组 |
\num | 引用分组num匹配到的字符串 |
– | – |
(?P) | 分组起别名 |
(?P=name) | 引用别名为name分组匹配到的字符串 |
正则高级函数:
re.match:()以什么方法匹配
re.search:在指定字符串中去匹配相应的规则,返回所有满足的子串,结果返回一个字符串
re.findall:在指定字符串中去匹配相应的规则,返回所有满足的子串,结果返回一个列表
re.sub:替换字符串,在指定字符串中 ,使用指定子串,替换满足规则的子串
re.split:分割字符串