0
def table_of_contents(text):
i = 0
toc = []
for chapter in range(1,60):
pattern = re.compile(r'(\S+)?(' + str(chapter) + ')(\S+)?', re.I)
m = pattern.search(text[i:])
if m is not None:
toc.append(m.start())
i = m.start()
else:
break
return toc
這個功能並沒有做我想要的東西,甚至認爲我認爲它應該。我試過調試它,但似乎是不透明的PDB。問題是toc應嚴格上升,但是,我得到的結果類似於解析文本的目錄
toc = [513, 435, 378, 486, 650, 789, 942]
發生了什麼事?
當文本[i:]只應該增加時,爲什麼搜索會向後跳轉?
爲什麼pattern和m在pdb中不顯示?
您將上下文定義爲可選的子字符串。至少可以嘗試設置字邊界,嘗試'r'\ b'+ str(chapter)+ r'\ b'' –