python正则表达式的懒惰匹配和贪婪匹配说明


Posted in Python onJuly 13, 2020

第一次碰到这个问题的时候,确实不知道该怎么办,后来请教了一个大神,加上自己的理解,才了解是什么意思,这个东西写python的会经常用到,而且会特别频繁,在此写一篇博客,希望可以帮到一些朋友。

例:一个字符串 “abcdacsdnd”

①懒惰匹配

regex = "a.*?d"

②贪婪匹配

regex = "a.*d"

测试代码:

# coding=UTF-8
import re

str = "abcdacsdn"
print("原始字符串 " + str)

# 懒惰匹配
regexL = "a.*?d"
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)

测试结果:

python正则表达式的懒惰匹配和贪婪匹配说明

结果分析:

懒惰匹配,匹配成功两次,一次abcd,一次acsd,匹配到满足条件的abcd就停止了此次匹配,不会干扰后面的继续匹配。

贪婪匹配,匹配成功一次,只有abcdacsd,匹配到字符串后,会最大限度的占用字符串

以上两种,一个是尽量匹配最短串,一个是匹配最长串。

补充知识:python正则匹配中贪婪匹配效率比较

用例回归完成之后,一般都要生成一个summary_report.但是,发现生成报告的时间耗时很久,搜集资料发现与匹配文件内容使用的正则表达式有很大关系.

1.匹配模式说明

下图中圈住的部分,没有注释掉的使用贪婪匹配,注释掉的使用非贪婪匹配

python正则表达式的懒惰匹配和贪婪匹配说明

执行时间上二者差别巨大;另外执行时间与正则表达式的长度也有关系,较长的表达式建议分段匹配.

2.贪婪匹配时间

python正则表达式的懒惰匹配和贪婪匹配说明

3.非贪婪匹配时间

python正则表达式的懒惰匹配和贪婪匹配说明

以上这篇python正则表达式的懒惰匹配和贪婪匹配说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python写的创建文件夹自定义函数mkdir()
Aug 25 Python
python基础教程之循环介绍
Aug 29 Python
python控制台中实现进度条功能
Nov 10 Python
wxpython实现图书管理系统
Mar 12 Python
python模拟表单提交登录图书馆
Apr 27 Python
Python SVM(支持向量机)实现方法完整示例
Jun 19 Python
Python读取stdin方法实例
May 24 Python
Pandas之ReIndex重新索引的实现
Jun 25 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
MAC平台基于Python Appium环境搭建过程图解
Aug 13 Python
如何用六步教会你使用python爬虫爬取数据
Apr 06 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 #Python
对python中list的五种查找方法说明
Jul 13 #Python
使用Python项目生成所有依赖包的清单方式
Jul 13 #Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 #Python
Python依赖包迁移到断网环境操作
Jul 13 #Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 #Python
python--shutil移动文件到另一个路径的操作
Jul 13 #Python
You might like
oracle资料库函式库
2006/10/09 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
php使用PDO方法详解
2014/12/27 PHP
懒就要懒到底——鼠标自动点击(含时间判断)
2007/02/20 Javascript
JQUERY设置IFRAME的SRC值的代码
2010/11/30 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
最原始的jQuery注册验证方式
2016/10/11 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
详解webpack和webpack-simple中如何引入css文件
2017/06/28 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
django项目登录中使用图片验证码的实现方法
2019/08/15 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
2020/01/13 Python
html5唤醒APP小记
2019/03/27 HTML / CSS
中科创达面试题
2016/12/28 面试题
大学生简单自荐信
2013/11/10 职场文书
创新比赛获奖感言
2014/02/13 职场文书
表彰会主持词
2014/03/26 职场文书
三八妇女节活动总结
2014/05/04 职场文书
营销团队口号
2014/06/06 职场文书
大班亲子运动会方案
2014/06/10 职场文书
增员口号大全
2014/06/18 职场文书
个人作风建设自查报告
2014/10/22 职场文书
班主任寄语2015
2015/02/26 职场文书
毕业证明模板
2015/06/19 职场文书
大学生受助感言
2015/08/01 职场文书
SQL之各种join小结详细讲解
2021/08/04 MySQL
Python中request的基本使用解决乱码问题
2022/04/12 Python