正则表达式——贪婪匹配与懒惰匹配

编程入门 行业动态 更新时间:2024-10-09 07:23:11

正则表达式——<a href=https://www.elefans.com/category/jswz/34/1753579.html style=贪婪匹配与懒惰匹配"/>

正则表达式——贪婪匹配与懒惰匹配

正则表达式之—— 贪婪匹配与懒惰匹配

在学习之前,需要熟悉一下基本操作符的含义:
. 表示换行外任意字符,
+ 表示重复前一个数一次或多次。

先举个栗子(匹配一个字符串):

import re
res = "aabab"
r1 = re.findall('a.*b',res)#findall()返回列表类型
r2 = re.findall('a.*?b',res)
print(r1,r2)
匹配类型操作结果操作的翻译
贪婪匹配a.*b[ aabab]匹配一个最长的字符串,从a开始,以b结束
懒惰匹配a.*?b[aab]和[ab]匹配一个最短的字符串,从a开始,以b结束

那么对于匹配有数字的字符串又有什么区别呢,这里依旧给出一个栗子。

import re
res = "aabab 123"
r1 = re.findall('.*(\d+)',res)#findall()返回列表类型
r2 = re.findall('.*?(\d+)',res)
print(r1,r2)

r1的结果是[‘3’]
r2的结果是[‘123’]

他们之间的差异也就只在一个问号,输出来的结果却不一样,原因如下:
贪婪匹配直接就从开始匹配到了2,即aabab12,剩了一个3满足\d+,于是结果为3,而懒惰匹配,只是匹配最短的字符,即到了空格就结束,因为123恰好满足\d+,于是结果就为123。

好了文章已经差不多了,谢谢观看,如有错误请指证!

更多推荐

正则表达式——贪婪匹配与懒惰匹配

本文发布于:2024-03-05 13:32:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1712417.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:贪婪   懒惰   正则表达式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!