2014年1月5日

多正则表达式匹配 (Multiple Regular Expression Matching) 中的动态 DFA 算法

摘要: 前一段时间,在将多正则表达式匹配工具用于数十万任意的正则表达式时,以前一直担心的问题终于出现了:NFA 转化 DFA 时的指数爆炸,那样的 DFA 根本创建不出来,因为那些正则表达式之间有不可预料的各种交集!这个问题对我打击很大,我甚至顿时觉得多正则表达式匹配工具完全是个废柴,最多,是个玩具!但是,只有挑战,才能激励人的斗志,挖掘人的潜能。我想起了曾经对之不屑一顾的动态 DFA 匹配算法,之前我在研究 RE2 时知道,RE2 在动态 DFA 的内存用量达到限定时,会抛弃已经创建整个动态 DFA,因为 DFA 的状态图比较复杂,节点之间互相引用,无法象普通的 Cache 一样部分的进行 Swap 阅读全文

posted @ 2014-01-05 21:43 能发波 阅读(281) 评论(0) 推荐(0) 编辑

导航