我在看: Python regex find all overlapping matches?和re.finditer
不適合我。我不想再下載另一個模塊(即regex
)來替換內置的re
。我以爲我可以自己寫,但我對while loops
的理解是有限的。查找所有重疊模式無限循環,使用Python 3和動態編程
我試圖做一個搜索包裝,發現所有模式,即使它們重疊(目前findall
不在re
)。
我也從來沒有試過編程這樣的東西,所以我不想嘗試使用內置模塊來構建我自己的函數,所以我可以學習如何動態編程。
def findall_positions(pattern, sequence):
positions = list()
cont = True
while cont == True:
match = re.search(pattern, sequence)
if match is not None:
positions.append(match.start())
sequence = sequence[positions[-1]:]
if match is None:
cont = False
return positions
findall_positions("AB","ABBABBABBBA")
我的邏輯是做re.search
,如果有一擊,開始追加到positions
,那麼第一re.search match
後得到的字符串接下來的拉伸和遍歷,直到match is None
。但是,我正在陷入無限循環。 我如何重構這個來獲得正確的結果?我正在尋找的[0,3,6]