: 這個其實更有趣了,單看 o*? , 代表的是 零個以上的 o 盡量少取
: 根據 re.findall 的特性,他會由左而右不重疊的取出來
: 如果以 o*? 來去對 fooood 做 findall ,我們由左而右來看,
: 黃色的就是目前正在檢查的:
: fooood , f 符合 "零個以上的 o" 嗎?
: => Yes, "零個 o" , 所以得到第一個 ''
: fooood , o 符合 "零個以上的 o" 嗎?
: => Yes, 符合零個 o , 因為是 "盡量少取"
: 所以得到第二個 ''
: fooood , o 符合 "零個以上的 o" 嗎?
: => Yes, 符合零個 o , 因為是 "盡量少取"
: 所以得到第三個 ''
: 依此類推,所以你會得到很多的個 ''
想請問一下,我用s1 = 'abc',然後 re.findall(r'o*?', s1)
得到的結果是 ['', '', '', '']
如果是從左到右一個個比對的話不是只有3個嗎?
為什麼最後會多一個出來呢?