知识卡片
回溯保存选择
内容
回溯的本质是在每个可选点保存“稍后也许能走”的状态。后续失败时,引擎回到最近保存点尝试另一条路。发散:性能灾难常不是匹配太难,而是保存了太多等价选择。
参考来源
- 位置:第4章《表达式的匹配原理》「回溯」小节(源文件:_epub-src/text/part0009_split_003.html)
- 结论依据:原文用面包屑比喻说明回溯就是在每个分岔口留下备用状态,失败时沿原路返回找到未尝试的路径,直接支持卡片对回溯本质是保存备用状态的论述。
- 原始内容:"如果正则表达式中余下的部分最终匹配失败,引擎会知道需要回溯到之前做出选择的地方,选择其他的备用分支继续尝试……回溯就像是在道路的每个分岔口留下一小堆面包屑。"