首先使用
patt = re.compile(r"regex")
编译模式,其中
| 字符 | 含义 |
|---|---|
| . | 除回车外的任意字符 |
| | | 或 |
| ? | 零到一次 |
| + | 一次及以上 |
| * | 零次及以上 |
| \A 或 ^ | 字符串开头 |
| \Z 或 $ | 字符串结尾 |
| \b | 单词边界 |
| \B | 非单词边界 |
| [^ …] | 不匹配该集合中的任何字符 |
| {N} | 精确匹配N次 |
| {M, N} | 匹配M到N次 |
| {?M, N} | 匹配M到N次,不贪婪 |
| () | 分组 |
| \nn | 数字表示分组的原始字符串 |
| \s | 所有空白符、分隔符 |
| \S | 非空白符 |
| \d | 数字 |
| \D | 非数字 |
| \w | 数字和字母 |
| \W | 非数字或字母 |
(?=…) 仅当…匹配下一个时才认为当前匹配,不消耗
(?! …) 仅当…不匹配下一个时才认为当前匹配,不消耗
(?<=…) 仅当…匹配前一个(及当前一个)时才认为当前匹配,不消耗
(?< !…) 仅当…不匹配前一个(及当前一个)时才认为当前匹配,不消耗
例如
[^0-9]+(?<!\n) 匹配所有非数字非回车
然后用patt的成员函数匹配
返回匹配对象Match 未找到返回None
search 寻找一次匹配
match 从开头直接匹配返回字符串
findall 所有匹配,返回str list
split 用模式进行分割 返回剩下的str list
sub(repl, string) 替换 返回字符串
sub(repfunc, string) 每找到一个匹配就作为参数传入函数 repfuncMatch对象的函数
group() = group(0) 返回匹配的字符串整体
group(N) 对应模式中的第N个括号的匹配内容
groups() 返回各个括号匹配内容的tuple
start() end() = start(0) end(0) 起始、结尾在字符串上的索引
start(N) end(N) 第N组的索引
9万+

被折叠的 条评论
为什么被折叠?



