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实现简单QQ单用户机器人的方法
Jul 03 Python
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
理解Python垃圾回收机制
Feb 12 Python
python实现二叉树的遍历
Dec 11 Python
python 动态加载的实现方法
Dec 22 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
TensorFlow实现iris数据集线性回归
Sep 07 Python
python得到一个excel的全部sheet标签值方法
Dec 10 Python
对python_discover方法遍历所有执行的用例详解
Feb 13 Python
python 环境搭建 及python-3.4.4的下载和安装过程
Jul 20 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
Python Matplotlib简易教程(小白教程)
Jul 28 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中二维数组排序问题方法详解
2015/08/28 PHP
PHP翻页跳转功能实现方法
2020/11/30 PHP
php数组指针操作详解
2017/02/14 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
ScrollDown的基本操作示例
2013/06/09 Javascript
SOSO地图JS画出标注和中心点以html形式运行
2013/08/09 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
js事件监听机制(事件捕获)总结
2014/08/08 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
nodemon实现Typescript项目热更新的示例代码
2019/11/19 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
Python中的迭代器漫谈
2015/02/03 Python
python 美化输出信息的实例
2018/10/15 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
AmazeUI 模态窗口的实现代码
2020/08/18 HTML / CSS
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
初中女生自我鉴定
2013/12/19 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
环保建议书作文500字
2015/09/14 职场文书
三严三实·严以律己心得体会
2016/01/13 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书