知识卡片

非捕获减少状态

普通读书笔记卡 · 1914.c

内容

不需要引用分组内容时,非捕获分组能减少捕获记录和回溯状态。它的收益通常来自降低引擎记账成本,而不是改变匹配语义。发散:性能优化常常是减少“无用信息”的产生。

参考来源

- 位置:第6章《打造高效正则表达式》「使用非捕获型括号」小节(源文件:_epub-src/text/part0011_split_006.html) - 结论依据:原文明确说明如果不需要引用括号内文本,使用非捕获型括号既能节省捕获时间,又能减少回溯使用的状态数量,从两方面提高速度,直接支持卡片对非捕获分组降低引擎记账成本而非改变语义的论述。 - 原始内容:"如果不需要引用括号内的文本,请使用非捕获型括号「(?:…)」。这样不但能够节省捕获的时间,而且会减少回溯使用的状态的数量,从两方面提高速度。"