【技术实现步骤摘要】
一种字符串匹配的方法和装置
本专利技术涉及互联网
,特别涉及一种字符串匹配的方法和装置。
技术介绍
多模式匹配问题是计算机科学的基本问题之一,多模式匹配问题可以简单描述为:一个目标字符串和一个模式字符串集合,判断此目标字符串包含模式字符串集合中的多个模式字符串。AC(Aho-Corasick)算法是一种经典的多模式匹配算法,该算法利用有限状态机将字符比较转化为状态转移,例如,将被匹配的目标字符串作为该有限状态机的输入使该有限状态机根据目标字符串进行状态转换,当有限状态机达到某些特定的状态时则说明发生模式匹配。但是,现有技术的AC算法在进行多模式匹配时还存在缺陷,例如,定义模式字符串的灵活性差,效率低,不能满足应用需求。
技术实现思路
本专利技术提供了一种字符串匹配的方法和装置,以解决现有AC算法在进行多模式匹配时存在的模式字符串的定义灵活性差,效率低,不能满足应用需求的问题。根据本申请的一个方面,提供了一种字符串匹配的方法,包括:初始化带有模糊节点的AC状态机;其中,所述AC状态机根据各规则字符串包含的字符之间的非通配关系生成常规节点,并根据字符之间的通配关系生 ...
【技术保护点】
一种字符串匹配的方法,其特征在于,包括:初始化带有模糊节点的AC状态机;其中,所述AC状态机根据各规则字符串包含的字符之间的非通配关系生成常规节点,并根据字符之间的通配关系生成对应的模糊节点;将目标字符串输入到AC状态机中,比较所述目标字符串中各字符与所述AC状态机中各节点对应的字符,确定出所述目标字符串匹配的一个或多个规则字符串;根据匹配出的规则字符串执行相应操作。
【技术特征摘要】
1.一种字符串匹配的方法,其特征在于,包括:初始化带有模糊节点的AC状态机;其中,所述AC状态机根据各规则字符串包含的字符之间的非通配关系生成常规节点,并根据字符之间的通配关系生成对应的模糊节点;将目标字符串输入到AC状态机中,比较所述目标字符串中各字符与所述AC状态机中各节点对应的字符,确定出所述目标字符串匹配的一个或多个规则字符串;根据匹配出的规则字符串执行相应操作。2.根据权利要求1所述的方法,其特征在于,所述规则字符串包括:含通配符的规则字符串以及不含通配符的规则字符串,初始化带有模糊节点的AC状态机包括:根据规则字符串包含的模糊字符以及该模糊字符与下一个字符之间的通配关系,为该模糊字符生成模糊子节点,并设置模糊子节点的父节点作为其失败节点;根据该模糊字符与下一个字符之间的非通配关系,为该模糊字符生成常规子节点,其中,模糊字符是指与通配符相邻的字符。3.根据权利要求2所述的方法,其特征在于,比较所述目标字符串中各字符与所述AC状态机中各节点对应字符,确定出所述目标字符串匹配的一个或多个规则字符串包括:获取目标字符串的当前字符,根据AC状态机中节点对应的子节点的类型,将当前字符与常规子节点对应的字符比较时,进行常规匹配操作,包括:比较当前字符与常规子节点对应的字符,相同则继续比较所述当前字符的下一个字符与所述常规子节点的子节点对应的字符,相同则继续依次比较目标字符串的剩余字符直至目标字符串结束,从而确定出匹配的规则字符串;将当前字符与模糊子节点对应的字符比较时,进行模糊匹配操作,模糊匹配操作包括:比较目标字符串的当前字符与模糊子节点对应的字符,并在比较之后返回模糊子节点的失败节点;若当前字符与模糊子节点对应的字符不相同,则获取所述当前字符的下一个字符,比较该下一个字符与所述失败节点的各模糊子节点对应的字符;若当前字符与任一模糊子节点对应的字符相同,则获取所述当前字符的下一个字符,比较该下一个字符与所述字符相同的模糊子节点的子节点对应的字符,相同则继续比较目标字符串的剩余字符与所述字符相同的模糊子节点的子节点对应的字符,直至目标字符串结束,从而确定出匹配的规则字符串。4.根据权利要求1所述的方法,其特征在于,所述规则字符串为既定的统一资源定位符URL,所述目标字符串为用户输入的URL。5.根据权利要求4所述的方法,其特征在于,根据匹配出的规则字符串执行相应操作包括:根据目标字符串所匹配的一个或多个...
【专利技术属性】
技术研发人员:刘欣然,李晓宇,王文博,徐佳瑞,李明,周宇,
申请(专利权)人:北京神州泰岳智能数据技术有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。