正则表达式总结
基本语法
元字符
代码
说明
举例
.
匹配除换行符外任意一个字符
[abc]
字符集合,只能表示一个字符位置。匹配所包含的任意一个字符
[^abc]
字符集合,只能表示一个字符位置。匹配除去集合内字符的任意一个字符
[a-z]
字符范围,一个集合,表示一个字符位置匹配所包含的任意一个字符
[^a-z]
字符范围,一个集合,表示一个字符位置匹配除去集合内字符的任意一个字符
\b
匹配单词的边界
\B
不匹配单词的边界
\d
等同[0-9] 匹配一位数字
\D
等同[^0-9] 匹配一位非数字
\s
匹配1位空白字符,包括换行符、制表符、空格等同[\f\r\n\t\v]
\S
匹配1位非空白字符
\w
等同[a-zA-Z0-9_] 包含中文
\W
匹配\w之外的字符
转义
凡是在正则表达式中有特殊意义的符号,转义时使用\
重复
代码
说明
举例
*
前面的正则表达式重复0次或多次
+
前面的正则表达式重复至少一次
?
前面的正则表达式重复0次或1次
{n}
重复n次
{n,}
重复n次以上
{n,m}
重复n到m次
分组(捕获)断言
代码
说明
举例
x
y
匹配x或y
(pattern)
分组(捕获)后会自动分配组号从1开始可以改变优先级 \数字 匹配对应的分组(指的是前一个匹配上的分组的内容)
(?:pattern)
只改变优先级不分组
(?<name>exp)(?nameexp)
分组捕获 给组命名Python句法为(?P<name>exp)
(?=exp)
零宽度正预测先行断言断言exp一定在匹配的右边出现
(?<=exp)
零宽度正回顾后发断言断言exp一定出现在匹配的左边出现
(?!exp)
零宽度负预测先行断言断言exp一定不会出现在右侧
(?<!exp)
零宽度负回顾后发断言断言exp一定不会出现在左侧
(?#comment)
注释
断言不会占用分组号
贪婪与非贪婪
默认贪婪模式,尽可能多的匹配字符串
代码
说明
举例
*?
匹配任意次,尽可能少重复
+?
匹配至少一次,尽可能少重复
??
匹配0或1次,尽可能少重复
{n}?
匹配至少n次,尽可能少重复
{n,m}?
匹配至少n次,至多m次,尽可能少重复
引擎选项
代码
说明
举例
IgnoreCase
匹配时忽略大小写
re.Ire.IGNORECASE
Singleline
单行模式,可穿透/n
re.Sre.DOTALL
Multiline
多行模式
re.Mre.MULTILINE
IgnorePatternWhitespace
忽略表达式中空白字符,若要使用空白字符
re.Xre.VERBOSE
代码 说明 举例
IgnoreCase 匹配时忽略大小写 re.Ire.IGNORECASE
Singleline 单行模式,可穿透/n re.Sre.DOTALL
Multiline 多行模式 re.Mre.MULTILINE
IgnorePatternWhitespace 忽略表达式中空白字符,若要使用空白字符 re.Xre.VERBOSE
Python中使用|(位或)运算开启多种选项
Python正则表达式
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。