python中如何使用正则表达式的非贪婪模式示例


Posted in Python onOctober 09, 2017

前言

本文主要给大家介绍了关于python使用正则表达式的非贪婪模式的相关内容,分享出来供大家参考学习,下面话不多说了,来一起详细的介绍吧。

在正则表达式里,什么是正则表达式的贪婪与非贪婪匹配

如:String str="abcaxc";

Patter p="ab*c";

贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。

非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。

解决这个问题,可以采用: 

正则引擎默认是贪婪的,当出现"*"时,它会尽量去匹配尽可能长的字符串。

 一个用于修正以上问题的可能方案是用"*"的惰性代替贪婪性。你可以在"*"后面紧跟一个问号"?"来达到这一点 
这告诉正则引擎,尽可能少的重复上一个字符。

如下面的例子:

#python 3. 6 
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579 
# 
from re_test_patterns import test_patterns 
 
test_patterns( 
 'abbaabbba', 
 [('ab*?', 'a followed by zero or more b'), 
  ('ab+?', 'a followed by one or more b'), 
  ('ab??', 'a followed by zero or one b'), 
  ('ab{3}?', 'a followed by three b'), 
  ('ab{2,3}?', 'a followed by two to three b')], 
)

输出结果如下:

'ab*?' (a followed by zero or more b)


 'abbaabbba'
 'a'
 ...'a'
 ....'a'
 ........'a'


'ab+?' (a followed by one or more b)


 'abbaabbba'
 'ab'
 ....'ab'


'ab??' (a followed by zero or one b)


 'abbaabbba'
 'a'
 ...'a'
 ....'a'
 ........'a'


'ab{3}?' (a followed by three b)


 'abbaabbba'
 ....'abbb'


'ab{2,3}?' (a followed by two to three b)


 'abbaabbba'
 'abb'
 ....'abb'

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python CSV模块使用实例
Apr 09 Python
python的else子句使用指南
Feb 27 Python
python 动态加载的实现方法
Dec 22 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
anaconda如何查看并管理python环境
Jul 05 Python
python线程中的同步问题及解决方法
Aug 29 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 Python
使用Python爬取Json数据的示例代码
Dec 07 Python
python 实现ping测试延迟的两种方法
Dec 10 Python
python中numpy.empty()函数实例讲解
Feb 05 Python
Python 多进程和数据传递的理解
Oct 09 #Python
Python 加密的实例详解
Oct 09 #Python
Python 3实战爬虫之爬取京东图书的图片详解
Oct 09 #Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 #Python
Python读取文件内容的三种常用方式及效率比较
Oct 07 #Python
Python引用传值概念与用法实例小结
Oct 07 #Python
Python中执行存储过程及获取存储过程返回值的方法
Oct 07 #Python
You might like
PHP中__autoload和Smarty冲突的简单解决方法
2016/04/08 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
基于JavaScript实现手机短信按钮倒计时(超简单)
2015/12/30 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
layui表格实现代码
2017/05/20 Javascript
JS+CSS实现网页加载中的动画效果
2017/10/27 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
处理Python中的URLError异常的方法
2015/04/30 Python
python 实现上传图片并预览的3种方法(推荐)
2017/07/14 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
用python爬取历史天气数据的方法示例
2019/12/30 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
python复合条件下的字典排序
2020/12/18 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
竞选班长的演讲稿
2014/04/24 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
初三新学期计划书
2014/05/03 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
党的群众路线教育实践活动查摆问题及整改措施
2014/10/10 职场文书
歌舞青春观后感
2015/06/10 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
python munch库的使用解析
2021/05/25 Python
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫