Re: [問題] 請問regular expression 可以找出重疊ꨠ…

看板Python作者 (Aethanyc)時間18年前 (2006/06/01 20:47), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/3 (看更多)
※ 引述《alltoher (any1's any is alltoher)》之銘言: : 請問 : regular expression 可以找出重疊的pattern嗎?? : 比如說 : import re : sentence = 'Lawrence and Peter are my best friend' : t = re.findall('\w{2,2}',sentence) : print t : ('\w'指文字, 要找出所有兩個相鄰的文字) : 這樣只能找到['La', 'wr', 'en', 'ce', 'an', : 'Pe', 'te', 'ar', 'my', 'be', 'st', 'fr', 'ie', 'nd'] : 但如果我希望能夠也match到重疊的部分就是所有符合的 : 像是 'La','aw','wr','re','en'.... : 想請教大家 : 請問有什麼方法可以做到呢?? : 謝謝各位的回答<(_ _)> 官方文件寫: findall(pattern, string) Return a list of all non-overlapping matches in the string. 所以要找重疊的patter,只能自己寫了,例: import re s='Lawrence and Peter are my best friend' m=[] for i in range(len(s)): x = re.match('\w{2}', s[i:]) if hasattr(x, 'group'): m.append(x.group()) print m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.141.230

06/01 21:14, , 1F
太感謝你了 !!^^
06/01 21:14, 1F
文章代碼(AID): #14Vk7zsT (Python)
文章代碼(AID): #14Vk7zsT (Python)