【技术实现步骤摘要】
本专利技术涉及模式匹配技木,尤其涉及一种多模式匹配方法、装置和设备。
技术介绍
多模式匹配问题是计算机科学的基本问题之一,多模式匹配问题可以简单描述为一个搜寻文本和ー个搜寻模式集合,判断此搜寻文本包含搜寻模式集合中的多少个搜寻·模式。比如搜寻·文本A为abcdefgl23456,搜寻■模式集合C为{abc、ef、tian、123、67、890}。那么,进行多模式匹配后,输出的结果就是搜寻文本A中包含搜寻模式abc、ef和123。多模式匹配只要扫描一遍搜寻文本,就能够找出该搜寻文本匹配的所有搜寻模 式,具有很高的匹配效率,广泛用于入侵检测、病毒检测、搜索引擎和数据挖掘等领域。AC (Aho-Corasick)算法是ー种经典的多模式匹配算法,能够在任意的搜寻文本中定位任一个搜寻模式的所有位置。该算法利用有限自动机巧妙地将字符比较转化为状态转移。其原理是首先根据搜寻模式集合定义ー个有限状态模式匹配机,然后把搜寻文本作为模式匹配状态机的输入,只要匹配到搜寻模式,就会通报此搜寻模式成功。在标准的AC算法中,搜寻文本的每次输入是ー个字节。以搜寻■模式集合{he、she、his、hers}为例,由此搜寻■模式集合构建的AC状态机如图I所示,图Ia 图Ic为现有技术AC状态机的示意图。图Ia中,姆ー个圆圈表示ー个状态节点,每个状态节点都包含三个重要数据转移(goto)函数(图la)、失效(failure)函数(图Ib)、输出(output)函数(图Ic)。其中,goto函数用于把ー个由状态和输入字符组成的ニ元组映射成另ー个状态或是失败;failure函数用于把ー个状态映 ...
【技术保护点】
【技术特征摘要】
1.一种多模式匹配方法,其特征在于,包括 查询映射表,获得搜寻文本中的字符的映射值; 将所述字符的映射值输入精简的AC状态机,以确定所述搜寻文本包含的搜寻模式;所述精简的AC状态机根据所述映射表构建,所述精简的AC状态机中每个状态节点的下ー个状态表的输入字符的范围包括通配字符和有效输入字符,所述通配字符用于表示无效输入字符;所述有效输入字符包括搜寻模式集合中的字符,所述无效输入字符包括美国信息互换标准代码ASCII码表中除所述有效输入字符之外的其他字符;所述映射表包括所述有效输入字符和所述有效输入字符的映射值,以及所述无效输入字符和所述无效输入字符的映射值。2.根据权利要求I所述的方法,其特征在于,所述查询映射表,获得搜寻文本中的字符的映射值之前,还包括 对所述搜寻模式集合进行扫描,将所述搜寻模式集合中包含的字符划分为有效输入字符,将ASCII码表中除所述有效输入字符之外的其他字符划分为无效输入字符; 将所述有效输入字符映射为所述有效输入字符在由所述搜寻模式集合包含的字符组成的有效输入字符集合中的序号,并将所述无效输入字符映射为由所述搜寻模式集合包含的字符组成的有效输入字符集合的集合大小,以构建所述映射表; 根据所述映射表构建精简的AC状态机。3.根据权利要求2所述的方法,其特征在于,所述根据所述映射表构建精简的AC状态机包括 根据所述搜寻模式集合,构建标准的AC状态机; 将所述标准的AC状态机每个状态节点的下一个状态表中所述无效输入字符对应的表项压缩为所述通配字符对应的表项,按照所述映射表中所述有效输入字符和所述通配字符的映射值的顺序,调整所述每个状态节点的下一个状态表中所述有效输入字符和所述通配字符的顺序,使得所述每个状态节点的下一个状态表中所述有效输入字符和所述通配字符的顺序与所述映射表中所述有效输入字符和所述通配字符的映射值的顺序一致。4.根据权利要求1-3任意一项所述的方法,其特征在于,所述精简的AC状态机中每个状态节点的下一个状态表中所述通配字符对应表项的下一个状态为初始状态。5.一种多模式匹配装置,其特征在于...
【专利技术属性】
技术研发人员:陈国鹏,
申请(专利权)人:北京星网锐捷网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。