贪婪模式: 在整个表达式匹配成功的前提下,尽可能多的匹配 ( * );
非贪婪模式: 在整个表达式匹配成功的前提下,尽可能少的匹配 ( ? );
Python里数量词默认是贪婪的。
示例一 : 源字符串:abbbc使用贪婪的数量词的正则表达式ab*
,匹配结果: abbb。
决定了尽可能多匹配 b,所以a后面所有的 b 都出现了。
使用非贪婪的数量词的正则表达式ab*?
,匹配结果: a。
即使前面有 *
,但是 ?
决定了尽可能少匹配 b,所以没有 b。
aatest1bbtest2cc
使用贪婪的数量词的正则表达式:
匹配结果:.*test1bbtest2
这里采用的是贪婪模式。在匹配到第一个“
“
“test1bbtest2”
。
使用非贪婪的数量词的正则表达式:
匹配结果:.*?test1
正则表达式二采用的是非贪婪模式,在匹配到第一个“