正则:
- 匹配字符:
字符 | 功能 |
---|---|
. | 匹配任意一个字符 |
[ ] | 匹配[]中列举的字符 |
\d | 匹配数字0-9 |
\D | 匹配非数字,不是数字的 |
\s | 匹配空白,空格和tab键 |
\S | 匹配非空白 |
\w | 匹配单词字符,a-z, A-Z, 0-9 |
\W | 匹配非单词字符 |
- \ 符号转义:
在匹配模式中经常用到 \ 符号转义,为了不被 \ 造成困扰,在匹配模式字符串前加上 r 代表原始字符串,
p = r’\d+.\d+.\d+.\d+’
- 匹配数量(次数):
字符 | 功能 |
---|---|
* | 匹配前一个字符0次或者多次 |
+ | 匹配前一个字符1次或多次 |
? | 匹配前一个字符0次或1次 |
{m} | 匹配前一个字符m次 |
{m, n} | 匹配前一个字符m到n次 |
{m,} | 匹配前一个字符至少m次,或者大于m次 |
- 匹配的边界:
字符 | 功能 |
---|---|
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
\b | 匹配一个单词的边界 |
\B | 匹配非单词的边界 |
- 匹配分组
字符 | 功能 |
---|---|
丨 | 匹配左右任意一个表达式 |
(ab) | 将括号中字符作为一个分组匹配 |
\num | 引用分组num匹配到的字符串 |
(?p<name>) | 分组起别名 |
(?P=name) | 引用别名为name分组匹配到的字符串 |
- re.match和re.search(返回的都是re.Match匹配对象,用group取值)
re.match只匹配字符串的开头,开头不匹配则匹配失败返回None
re.search匹配整个字符串,没有匹配到则返回None
使用group得到匹配对象的结果:
group(0)取到所有结果(所有分组结果都在一个字符串中),是个字符串
group(1)取到第一个分组的结果,是个字符串
- compile函数
用来编译正则表达式,生成一个正则表达式对象,供match和search两个函数使用
p = r’\d+.\d+.\d+.\d+’
re.complie§
-
findall函数
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,没有匹配返回一个空列表
注意: match和saerch只匹配一次,findall匹配所有 -
split函数
split按照能够匹配的子串将字符串分割后返回列表