详解正则表达式的贪婪模式与非贪婪模式
什么是正则表达式的贪婪与非贪婪匹配
如:String str="abcaxc";
Patter p="ab*c";
贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc(ab*c)。
非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:abc(ab*c)。
下面通过实例代码看下正则表达式的贪婪模式与非贪婪模式,具体内容如下所示:
贪婪模式:能匹配的最大部分
s = "This is a number 234-235-22-4223" r = re.match(r"(.+)(\d+-\d+-\d+-\d+",s) r.groups() ("This is a number 23","4-235-22-4223")
贪婪模式就是“.+”中的+会一直查找到最后一个符合条件的字符,所以上述代码中最前面的两个数字在提取数字是没有被提取到
非贪婪模式:匹配越少越好
s = "This is a number 234-235-22-4223" r = re.match(r"(.+?)(\d+-\d+-\d+-\d+",s) r.groups() ("This is a number ","234-235-22-4223")
非贪婪模式就是在“.+?"会匹配到第一个符合条件的字符就停止
总结
以上所述是小编给大家介绍的正则表达式的贪婪模式与非贪婪模式,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
上一篇:浅谈Python采集网页时正则表达式匹配换行符的问题
栏 目:正则表达式
本文标题:详解正则表达式的贪婪模式与非贪婪模式
本文地址:https://www.xiuzhanwang.com/a1/zhengzebiaodashi/11211.html
您可能感兴趣的文章
- 01-11正则表达式实现添加、删除、替换三种功能
- 01-11python 用正则表达式筛选文本信息的实例
- 01-11正则表达式之匹配数字范围
- 01-11python爬虫正则表达式之处理换行符
- 01-11正则表达式匹配路由的实现代码
- 01-11正则表达式截取身份证号码加密的方法
- 01-11js正则表达式 匹配两个特定字符间的内容示例
- 01-11MySQL使用正则表达式进行查询操作经典实例总结
- 01-11python正则表达式之对号入座篇
- 01-11详解正则表达式实现二代身份证号码验证
阅读排行
本栏相关
- 01-11正则表达式实现添加、删除、替换三
- 01-11正则表达式之匹配数字范围
- 01-11python 用正则表达式筛选文本信息的实
- 01-11正则表达式匹配路由的实现代码
- 01-11python爬虫正则表达式之处理换行符
- 01-11js正则表达式 匹配两个特定字符间的
- 01-11正则表达式截取身份证号码加密的方
- 01-11python正则表达式之对号入座篇
- 01-11MySQL使用正则表达式进行查询操作经典
- 01-11详解正则表达式实现二代身份证号码
随机阅读
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 01-10C#中split用法实例总结
- 01-11ajax实现页面的局部加载
- 04-02jquery与jsp,用jquery
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10SublimeText编译C开发环境设置
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10delphi制作wav文件的方法