【发布时间】:2017-02-06 15:46:20
【问题描述】:
我已阅读 why GNU grep is fast 以及 Boyer-Moore 的实现,但我真正想知道的是 grep 如何与 pat1|pat2 甚至 [ABC] 等复合模式一起工作。
grep 是在构建解析树吗?还是像检查简单模式列表一样检查复合模式?
到目前为止,我还没有找到任何解释它的合理网站。
我们将不胜感激快速解释和参考。
【问题讨论】:
-
这里是参考:git.savannah.gnu.org/cgit/grep.git/tree 没有快速解释,不过 ;)
-
“解析树”是什么意思?
-
@rici 我的意思是类似于为 Aho-Corasick 算法构建的 trie。我知道这不是一个“死板”的定义,但我没有更好的词..
-
@VaultDweller:这是一个特里 :),这是一种树,可以肯定的是,但与解析几乎没有关系。如果您的意思是“grep 构造有限自动机吗?”,根据我的回答和链接的文章,答案是肯定的。
标签: regex parsing grep pattern-matching