: 这个其实更有趣了,单看 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个吗?
为什么最后会多一个出来呢?