贪婪匹配:
+
,?
,*
,{n}
,{n,}
,{n,m}
匹配时,如果遇到上述标识符,代表是贪婪匹配,会尽可能多的去匹配内容.
下面是贪婪匹配的示例:
content = 'Xiaoshuaib has 102 bananas'
#贪婪匹配:
res1 = re.findall('^Xi.*(\d+).*$',content)
#直到遇到最后一个符合条件的(/d)为止,这时遇到最后一个符合条件的元素是2 -> 2
----------------------out----------------------
res1: ['2']
非贪婪匹配:
尽量匹配少的内容,一旦碰到第一个符合条件的元素就不再继续向后匹配
标识符:
+?
,??
,*?
,{n}?
,{n,}?
,{n,m}?
(在贪婪标识符后面加?)
res2 = re.findall('^Xi.*?(\d+).*$',content)
#非贪婪匹配,遇到第一个符合条件的元素就放弃匹配,第一个符合条件的元素是1 -> 102
-------------------out------------------
res2: ['102']