详解正则表达式的贪婪模式与⾮贪婪模式
什么是正则表达式的贪婪与⾮贪婪匹配
如: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)
("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)
("This is a number ","234-235-22-4223")
⾮贪婪模式就是在“.+?"会匹配到第⼀个符合条件的字符就停⽌
总结
以上所述是⼩编给⼤家介绍的正则表达式的贪婪模式与⾮贪婪模式,希望对⼤家有所帮助,如果⼤家有任何疑问欢迎给我留⾔,⼩编会及时回复⼤家的!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论