跳转至

正则表达式

导包

import re


匹配

匹配 返回列表

re.findall('正则表达式', '字符串')

搜索

返回匹配字符串下标

re.search('正则表达式', '字符串')

方法

.span() 返回下标


替换

返回结果

re.sub('正则表达式', '替换为', '字符串')

匹配 可迭代对象

返回可迭代对象

re.finditer('正则表达式', '字符串')

方法

.span() 返回下标

.group() 返回匹配的值


分割成列表 split

返回 匹配值分割成列表

re.split('正则表达式', '字符串')

修饰符

修饰符可以用 | 连接

修饰符 | 修饰符 | 修饰符

修饰符

re.I 使匹配对大小写不敏感

re.M 多行匹配 影响 ^ 和 $

re.S 使 . 匹配包括换行在内的所有字符


模式

字符 描述
^ 匹配字符串的开头
$ 匹配字符串的末尾
. 匹配任意字符
[...] 用来表示一组字符
[^...] 不在[]中的字符
* 匹配0个或多个
+ 匹配1个或多个
? 匹配0个或1个
{ n} 匹配 n 个前面表达式
{ n,} 匹配至少 n 个前面表达式
{ n, m} 匹配 n 到 m 次
a | b 匹配a或b
() 对正则表达式分组
\w 匹配字母数字及下划线
\s 匹配任意空白字符,等价于 [ \t\n\r\f]
\S 匹配任意非空字符
\d 匹配任意数字
\D 匹配任意非数字
[aeiou] 匹配中括号内的任意一个字母
[0-9] 匹配任何数字
[a-z] 匹配任何小写字母
[A-Z] 匹配任何大写字母
[a-zA-Z0-9] 匹配任何字母及数字
*? 重复任意次,但尽可能少重复
+? 重复1次或多次,但尽可能少重复
?? 重复0次或1次,但尽可能少重复
{M,N}? 重复M到N次,但尽可能少重复
{M,}? 重复M次以上,但尽可能少重复
|  # 多个表达式连接 或者的效果