Re: [問題] 正規表示法"*?"
: 這個其實更有趣了,單看 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個嗎?
為什麼最後會多一個出來呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.93.94
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1465151166.A.3F9.html
推
06/06 11:33, , 1F
06/06 11:33, 1F
→
06/06 11:34, , 2F
06/06 11:34, 2F
推
06/08 21:05, , 3F
06/08 21:05, 3F
→
06/08 21:05, , 4F
06/08 21:05, 4F
→
06/08 21:05, , 5F
06/08 21:05, 5F
→
06/08 21:06, , 6F
06/08 21:06, 6F
→
06/08 21:07, , 7F
06/08 21:07, 7F
→
06/08 21:15, , 8F
06/08 21:15, 8F
→
06/08 21:16, , 9F
06/08 21:16, 9F
→
06/08 21:20, , 10F
06/08 21:20, 10F
討論串 (同標題文章)