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:]应该只增加时搜索会向后跳?
为什么不在pdb中显示模式和m?
答案 0 :(得分: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)
i += m.start()
else:
break
return toc