正则表达式中贪婪模式与非贪婪模式有什么区别

  介绍

正则表达式中贪婪模式与非贪婪模式有什么区别?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

<强>什么是正则表达式的贪婪与非贪婪匹配

如:<代码>字符串str=癮bcaxc";

<代码>行话p=癮b * c";

贪婪匹配:正则表达式一般趋向于最大长度匹配,也就是所谓的贪婪匹配。如上面使用模式p匹配字符串str,结果就是匹配到:abcaxc (ab * c)。

非贪婪匹配:就是匹配到结果就好,就少的匹配字符。如上面使用模式p匹配字符串str,结果就是匹配到:美国广播公司(ab * c)。

<强>下面通过实例代码看下正则表达式的贪婪模式与非贪婪模式,具体内容如下所示:

贪婪模式:能匹配的最大部分,

s =,“却;能够is  a  number  234 - 235 - 22 - 4223 -“,   时间=r  re.match (r" (+) (\ d + - \ d + \ d + \ d +“, s)   r.groups ()   (“却;能够is  a  number  23“,“4 - 235 - 22 - 4223“)

贪婪模式就是”。“中+的+会一直查找到最后一个符合条件的字符,所以上述代码中最前面的两个数字在提取数字是没有被提取到

非贪婪模式:匹配越少越好

s =,“却;能够is  a  number  234 - 235 - 22 - 4223 -“,   时间=r  re.match (r" (. + ?) (\ d + - \ d + \ d + \ d +“, s)   r.groups ()   (“却,能够is  a  number “,“234 - 235 - 22 - 4223“)

非贪婪模式就是在“。+ ?“会匹配到第一个符合条件的字符就停止

看完上述内容,你们掌握正则表达式中贪婪模式与非贪婪模式有什么区别的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

正则表达式中贪婪模式与非贪婪模式有什么区别