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实现的防DDoS脚本
Feb 08 Python
Python访问MySQL封装的常用类实例
Nov 11 Python
Python中使用Boolean操作符做真值测试实例
Jan 30 Python
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
python中列表和元组的区别
Dec 18 Python
python语言元素知识点详解
May 15 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 Python
Pycharm小白级简单使用教程
Jan 08 Python
python glom模块的使用简介
Apr 13 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 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
精致的人儿就要挑杯子喝咖啡
2021/03/03 冲泡冲煮
10个可以简化php开发过程的MySQL工具
2010/04/11 PHP
php ajax 静态分页过程形式
2011/09/02 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
基于php常用正则表达式的整理汇总
2013/06/08 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
AngularJS  双向数据绑定详解简单实例
2016/10/20 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
python的staticmethod与classmethod实现实例代码
2018/02/11 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
20行python代码实现人脸识别
2019/05/05 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
python标准库os库的函数介绍
2020/02/12 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
Django使用django-simple-captcha做验证码的实现示例
2021/01/07 Python
HTML5+CSS3模仿优酷视频截图功能示例
2017/01/05 HTML / CSS
应届生如何写自荐信
2014/01/05 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书
2015初中团支部工作总结
2015/07/21 职场文书
基层党建工作简报
2015/07/21 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书