初面网初面网

正则表达式

正则表达式指的是匹配规则。例如在一群学生中,找到学号里带3这个数的学生,那么我们可以写一个规则,去判断学生学号里是否带有3。

python中的正则需要导入re模块来使用。

import re

str = 'hello, every one have EEEE!'
res = re.search('h(\m)s', str)
print(res.groups())

匹配字符

特殊字符描述
\d匹配任何十进制数字,与[0-9]一致
\D匹配任意非数字
\w匹配任何字母、数字、下划线,以及unicode字符集
\W匹配非字母数字及下划线
\s匹配任何空格字符,与[\n\t\r\v\f]相同
\S匹配任何非空字符
\A匹配字符串的起始
\Z匹配字符串的结束
.匹配任何字符(除了\n)

量词符号

符号描述
^匹配字符串起始部分
$匹配字符串终止部分
*匹配0次或多次
+匹配1次或多次
{N}匹配N次前面出现的正则表达式
{M,N}匹配M~N次前面出现的正则表达式

选择符号

符号描述
re1|re2匹配正则表达式re1或re2
[...]匹配来自字符集的任意单一字符
[...x-y...]匹配x~y范围中的任意单一字符
[^...]不匹配此字符集中出现的任何一个字符,包括某一范围的字符
\特殊字符无效化

符号描述
()在匹配规则中获取指定的数据

re中的api

API描述
findall在目标字符串中找到所有符合条件的子串
search返回符合条件的子串所形成的组。以groups获取所有组,或者以group(序号)获得特定序号的组。序号从1开始。
split以符合条件的子串为分隔符,将父串分割,返回分割后的列表
match使用带有可选的标记的正则表达式的模式来匹配字符串。匹配成功就返回匹配对象;失败则返回None
compile定义一个匹配规则的对象

额外匹配要求

属性描述
re.I,或re.IGNORECASE不区分大小写
re.L,或re.LOCALE以本地语言环境通过\w\W\s\S匹配。可近似看做utf-8
re.M,或re.MULTILINE^和$匹配目标字符串中行的起始和结尾
re.S,或re.DOTALL点号匹配全部字符
re.X,或re.VERBOSE忽略规则表达式中的空白和注释

更新于 2026/6/7