单字符
. | 任意一个字符(除\n) |
[] | 列举的一个字符 |
\d | 数字(0-9) |
\D | 非数字 |
\s | 空白、空格、Tab |
\S | 非空 |
\w | 单词字符(a-z,A-Z,0-9,_) |
\W | 非单词字符 |
多字符
* | 0-∞ |
+ | 1-∞ |
? | 0或1 |
{m} | m |
{m,} | m-∞ |
{m,n} | m-n |
边界
^ | 开头 |
$ | 结尾 |
\b | 单词边界 |
\B | 非单词边界 |
分组
| | 左右任意一个 |
(ab) | 一个分组 |
\num | 引用 num 分组匹配到的字符串 |
(?P<name>) | 分组起别名 |
(?P=name) | 引用 name 分组匹配到的字符串 |
import re
re.match(正则,字符串) #从字符串开始位置匹配
re.searth(正则,字符串) #查找第一个
re.findall(正则,字符串) #全部
re.sub(正则,替换字符串,原字符串) #替换
re.sub(正则,函数名,原字符串) #函数返回值替换
re.split(正则,字符串) #正则分割字符串,返回列表
+? 关闭贪婪模式
例:分隔单词
s = hello world ha ha
re.split(r" +",s)
re.findall(r"\b[a-zA-Z]+\b",s)