常用内建模块之正则表达式re模块
python正则表达式re模块介绍
- 正则表达式,英语:
Regular Expression,在代码中常简写为regex、regexp或RE。
python中re模块是正则表达式模块,使用方法如下:
| |
使用re模块的步骤
我们有必要对re模块中所包含的类及其工作流程进行一下简单的、整体性的说明,这讲有利于我们对下面内容的理解。
使用re模块进行正则匹配操作的步骤:
- 编写表示正则表达式规则的Python字符串str;
- 通过
re.compile()函数编译该Python字符串获得一个正则表达式对象(Pattern Object)p; - 通过正则表达式对象的
p.match()或p.fullmatch()函数获取匹配结果–匹配对象(Match Object)m; - 通过判断匹配对象
m是否为空可知是否匹配成功,也可以通过匹配对象m提供的方法获取匹配内容。
使用re模块进行内容查找、替换和字符串分隔操作的步骤:
- 编写表示正则表达式规则的Python字符串str;
- 通过
re.compile()函数编译该Python字符串获得一个正则表达式对象(Pattern Object)p; - 通过正则表达式对象的
p.search()或p.findall()或p.finditer()或p.sub()或p.subn()或p.split()函数完内容查找、替换和字符串分隔操作并获取相应的操作结果;
总结:
- 根据上面的描述可知,将一个表示正则表达式的Python字符串编译成一个正则表达式对象是使用正则表达式完成相应功能的首要步骤.
re模块中用于完成正则表达式编译功能的函数为re.compile()。
正则表达式中特殊的字符
正则表达式中特殊的字符:
| |
正则表达式示例如下。
使用re.match匹配首字符"I"
使用re.match匹配首字符"I":
| |
增加忽略大小写的flag re.IGNORECASE
| |
修改正则表达式尝试去匹配大小的"I"
| |
使用fullmatch进行完全匹配
使用fullmatch进行完全匹配:
| |
使用re.search进行搜索匹配
使用re.search进行搜索匹配:
| |
使用re.findall进行搜索匹配
使用re.findall进行搜索匹配:
| |
re.finditer进行搜索匹配
使用re.finditer进行搜索匹配,返回callable_iterator对象:
| |
字符串分割
使用re.split(pattern, string, maxsplit=0, flags=0)进行字符分割:
| |
字符串替换
使用re.sub(pattern, repl, string, count=0, flags=0)对字符串进行替换:
| |
字符转义
使用re.escape将所有字符转义:
| |
匹配行首行尾
匹配行首行尾:
| |
重复匹配
重复匹配:
贪婪型匹配
| |
非贪婪型匹配
| |
匹配1次,匹配2次,或匹配m至n次,贪婪型匹配
| |
匹配1次,匹配2次,或匹配m至n次,非贪婪型匹配
| |
系列匹配
使用[]匹配系列:
| |
分组匹配
分组匹配:
| |
正则标记
使用(?aiLmsux)设置正则标记:
| |
命名组匹配
使用(?<name>)和(?P=name)进行命名组匹配:
| |
添加备注信息
添加备注信息:
| |
限定字符匹配
在需要匹配的字符前后有限定字符:
| |
选择性匹配
选择性匹配:
| |
使用特殊字符进行查找
使用特殊字符进行查找:
| |
参考文献:
