知识卡片
共享前缀要提取
内容
多选分支如果共享前缀,应把前缀提到分支外。这样引擎只检查一次公共部分,也更容易触发开头字符和必要字面量优化。关联:[[有序多选能表达策略]]。
参考来源
- 位置:第6章《打造高效正则表达式》「开头字符/字符组/子串识别优化」小节(源文件:_epub-src/text/part0011_split_004.html)
- 结论依据:原文明确指出许多系统会受到多选结构干扰,把共同的开头字符提取到分支外(如「th(is|at)」而非「this|that」)表现更好,直接支持卡片对共享前缀应提取到分支外的论述。
- 原始内容:"不同的应用程序能够识别出的必须字符和字符串有很大差别。许多系统会受到多选结构的干扰。在这种系统中,使用「th(is|at)」的表现好于「this|that」。"