Python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符,非贪婪则相反,总是尝试匹配尽可能少的字符。
数量词有:
* | 任意多个,相当于{0,} |
+ | 至少一个,相当于{1,} |
? | 0或1个,相当于{0,1} |
{m,n} | m到n个 |
如何使数量词由贪婪变非贪婪呢?
在上述数量词后面加上?即可。
例如:
#贪婪模式
re.match('.*\d','a22222').group()
结果:‘a22222'
#非贪婪模式,数量词后加?
re.match('.*?\d','a11112').group()
结果:'a1'