第一次碰到这个问题的时候,确实不知道该怎么办,后来请教了一个大神,加上自己的理解,才了解是什么意思,这个东西写python的会经常用到,而且会特别频繁,在此写一篇博客,希望可以帮到一些朋友。
例:一个字符串 “abcdacsdnd”
①懒惰匹配
regex = "a.*"
②贪婪匹配
regex = "a.*d"
测试代码:
# coding=UTF-8 import re str = "abcdacsdn" print("原始字符串 " + str) # 懒惰匹配 regexL = "a.*" print("懒惰匹配 = " + regexL) regL = re.compile(regexL) listL = re.findall(regL, str) print("懒惰匹配结果") print(listL) # 贪婪匹配 regexT = "a.*d" print("贪婪匹配 = " + regexT) regT = re.compile(regexT) listT = re.findall(regT, str) print("贪婪匹配结果") print(listT)
测试结果:
结果分析:
懒惰匹配,匹配成功两次,一次abcd,一次acsd,匹配到满足条件的abcd就停止了此次匹配,不会干扰后面的继续匹配。
贪婪匹配,匹配成功一次,只有abcdacsd,匹配到字符串后,会最大限度的占用字符串
以上两种,一个是尽量匹配最短串,一个是匹配最长串。
补充知识:python正则匹配中贪婪匹配效率比较
用例回归完成之后,一般都要生成一个summary_report.但是,发现生成报告的时间耗时很久,搜集资料发现与匹配文件内容使用的正则表达式有很大关系.
1.匹配模式说明
下图中圈住的部分,没有注释掉的使用贪婪匹配,注释掉的使用非贪婪匹配
执行时间上二者差别巨大;另外执行时间与正则表达式的长度也有关系,较长的表达式建议分段匹配.
2.贪婪匹配时间
3.非贪婪匹配时间
以上这篇python正则表达式的懒惰匹配和贪婪匹配说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“python正则表达式的懒惰匹配和贪婪匹配说明”评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]