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模块简介之有序字典(OrderedDict)
Dec 01 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
Sep 25 Python
基于h5py的使用及数据封装代码
Dec 26 Python
opencv python图像梯度实例详解
Feb 04 Python
Python post请求实现代码实例
Feb 28 Python
Scrapy模拟登录赶集网的实现代码
Jul 07 Python
Python日志模块logging用法
Jun 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设计模式之观察者模式的应用详解
2013/05/21 PHP
IE6下CSS图片缓存问题解决方法
2010/12/09 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
使用Web Uploader实现多文件上传
2016/06/08 Javascript
JS实现图片居中悬浮效果
2017/12/25 Javascript
JavaScript实现京东放大镜效果
2019/12/03 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
利用Python中的输入和输出功能进行读取和写入的教程
2015/04/14 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
教你用python3根据关键词爬取百度百科的内容
2016/08/18 Python
python调用支付宝支付接口流程
2019/08/15 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
视光学专业毕业生推荐信
2013/10/28 职场文书
内衣营销方案
2014/03/15 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
违章停车检讨书
2014/10/21 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
应届毕业生自荐信
2015/03/04 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
禁毒心得体会范文
2016/01/15 职场文书
python元组打包和解包过程详解
2021/08/02 Python
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技