QB64 搜索技巧 核手提箱 文字记录 海洋云增白 开源地图 Bliss AI 搜索答案 深海沉船 自由职业 policy 小团队 颈挂空调 Chumby 个人电脑 极端主义 团队 世界 PostgreSQL AI工具 证券 DirectX 防溢 DrawingPics Zulip 儿童读物 化学 连续滚动 代码审查 三菱电机 更多

基于三元索引的正则表达式匹配:谷歌代码搜索是如何工作的 (swtch.com)

本文介绍了谷歌代码搜索使用三元索引技术实现快速正则表达式匹配的方法。文章首先介绍了基于倒排索引的传统单词搜索,然后引入了三元索引的概念,并解释了如何将正则表达式转换为三元索引查询。文章还提供了一个简单的实现,展示了如何使用三元索引进行代码搜索,并分析了其性能优势。最后,文章回顾了三元索引技术的发展历史及其在信息检索领域的应用。

正则表达式匹配可以简单快速 (swtch.com)

文章对比了两种正则表达式匹配方法:回溯法和Thompson NFA。回溯法在许多流行语言(如Perl、Python)中被广泛使用,但对于特定类型的正则表达式,其效率低下,时间复杂度呈指数级增长。Thompson NFA 算法则效率更高,时间复杂度为线性,即使对于“病态”正则表达式也能保持快速。文章详细介绍了Thompson NFA算法的原理和C语言实现,并通过性能测试证明其优于回溯法。作者主张,即使在需要回溯功能的场景下,也应该优先考虑Thompson NFA算法,仅在必要时才使用回溯。