-
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
-
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
-
re 模块使 Python 语言拥有全部的正则表达式功能。
-
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
-
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
二. re模块
2.1 match方法
re.match 尝试从字符串的起始位置匹配一个规则,匹配成功就返回match对象,否则返回None
。可以使用group()
获取匹配成功的字符串。
- 语法:
re.match(pattern, string, flags=0)
- 参数说明:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-6e95d3302e339a39d860e22d1db26c1e.png)
- 我们可以使用
group(num)
或 groups()
匹配对象函数来获取匹配表达式。
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-04882a6c70d6cecbb642684fee340a2c.png)
- 代码演示
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-5fec2c5dda10a950505c24917dfce9db.png)
输出:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-e40398c43ec69f7033f9c32cc61bb6eb.png)
2.2 匹配规则
2.2.1 匹配字符
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-3a9c856e6252fcda26daaec3933fa1e5.png)
.
点的使用,匹配除了换行符之外的任意一个字符字符,还可以.*
输出后面的字符串
输出:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-de1be9c5ab475c527b90e899a9701920.png)
2. []
中括号:匹配中括号中的任意一个字符,
2.2.2 分组匹配
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-89a2d77d7a36ad1a6791b7259028786e.png)
代码按例:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-b7a5be99ee168edff4d8c975824b114c.png)
2.2.3 限定匹配字符规则
原理:就是匹配数量
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-22b72d42acd60aeb9084b910f30b0aff.png)
*
匹配前一个字符出现0次或者无限次,即可有可无
代码:
输出:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-3fbb8fb6b0e451d1edbcff0fdcfdc3e1.png)
2. 代码按例匹配邮箱
输出:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-caf60e30baf24b041f91130261b7cd04.png)
2.2.4 转义字符
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-4596105e03325c8cfea40928c4f3c7c2.png)
输出:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-cf52087c4b19b3fe68074c97794dcb33.png)
三. re中的编译函数
3.1 compile方法
compile
可以把一个字符串编译成字节码
- 优点:在使用正则表达式进行match的操作时,python会将字符串转为正则表达式对象,
- 而如果使用
compile
只需要一次转换,以后再使用模式对象的话 无需转换
3.2 search方法
search
:在全文中匹配一次,匹配到就返回
- 语法:
re.search(pattern, string, flags=0)
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-a431308d4fcb22b06a55667b2f9c6708.png)
- 代码
3.3 finall方法
finall()
:查询字符串中某个正则表达式全部的非重复出现的情况 返回是一个符合正则表达式的结果列表
- 语法:
findall(string[, pos[, endpos]])
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-0ff64ecef19abc3f23b13affce96fdfd.png)
3.代码
小结:search找到就返回,finall全部找到才返回
3.4 sub方法
sub
:将匹配到的数据进行替换,实现目标的搜索和查找
- 语法:
sub(pattern, repl, string, count=0, flags=0)
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-3bbf7e5b030441a2ff6a76485f4ea7ad.png)
- 代码
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-f59b5da55f12722f69038b10aef7289e.png)
输出:
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-f01002cdb0f4eda0c2e95a22f0b194a1.png)
3.5 split方法
- split:实现分割字符串,以列表形式返回
- 语法:
split(pattern, string, maxsplit=0, flags=0)
![熬夜到虚脱整理出来的Python的正则表达式总结 熬夜到虚脱整理出来的Python的正则表达式总结](https://www.zkxjob.com/wp-content/uploads/2022/02/wxsync-2022-02-d2c7e5ea3f44f9eb51abe5dac4f15ca9.png)
四. 贪婪模式与非贪婪模式
默认条件下为贪婪模式
- 贪婪:在满足条件情况下尽可能匹配到数据
- 非贪婪:满足条件就可以,在
"*","?","+","{m,n}"
后面加上?
,就能将贪婪变成非贪婪.
代码
输出:
abcab
ab
上面可以看出,贪婪模式要匹配到最后一个b才停止,然而非贪婪模式匹配到第一个b就停止了
内容反馈