一种模式字符串的处理方法、装置及设备制造方法及图纸

技术编号:24169215 阅读:48 留言:0更新日期:2020-05-16 02:24
本申请公开一种模式字符串的处理方法、装置及设备,所述方法包括:将任一模式字符串确定为待处理模式字符串,并将预设长度的滑动窗口的头/尾端与待处理模式字符串的头/尾端对齐;基于待处理模式字符串处于滑动窗口中的字符串的字符分布情况,确定字符串的分数;以预设步长向待处理模式字符串的尾/头端移动滑动窗口,直到滑动窗口不能移动;基于待处理模式字符串处于所滑动窗口中的各个字符串的分数,确定待处理模式字符串的过滤字符串,最终完成各个模式字符串均完成过滤字符串的确定。本申请基于模式字符串的字符分布情况确定过滤字符串,使得基于确定的过滤字符串进行多模字符串的匹配,能够避免性能大幅下降的情况,从而提高匹配效率。

A processing method, device and equipment of pattern string

【技术实现步骤摘要】
一种模式字符串的处理方法、装置及设备
本申请涉及数据处理领域,具体涉及一种模式字符串的处理方法、装置及设备。
技术介绍
多模字符串的匹配,是指给定多个字符串作为模式字符串,然后在一段待匹配数据中找出所有出现的模式字符串及其出现的位置。目前多模字符串的匹配在越来越多的业务场景中被应用,例如基于特征码的协议识别和攻击检测等。随着应用的复杂化,模式字符串的数量在不断的增加,并且对匹配的性能要求也越来越高,这对现有的多模字符串的匹配算法提出了挑战,比如经典的AC自动机算法就因其巨大的内存消耗在一些情况下变得不可用,而另外的基于过滤的多模字符串的匹配算法因其较小的内存占用以及在大部分情况下都能获得较高的匹配性能的优势而越来越多的被应用。但是,基于过滤的多模字符串的匹配算法在一些场景下也会出现性能大幅下降的情况(具体场景会在后续进行具体介绍),经过研究发现大部分原因是由于模式字符串中的过滤字符串由前K个字符或后K个字符固定构成导致的,因此,如何确定模式字符串中的过滤字符串,是解决基于过滤的多模字符串的匹配算法在某些场景下性能大幅下降的关键。
技术实现思路
有鉴于此,本申请提供了一种模式字符串的处理方法、装置及设备,能够基于模式字符串的字符分布情况,确定模式字符串的过滤字符串,使得基于本申请确定的过滤字符串进行多模字符串的匹配时,能够避免在某些场景下性能大幅下降的问题。第一方面,为实现上述专利技术目的,本申请提供了一种模式字符串的处理方法,所述方法包括:S1、将任一模式字符串确定为待处理模式字符串,并将预设长度的滑动窗口的头/尾端与所述待处理模式字符串的头/尾端对齐;S2、基于所述待处理模式字符串处于所述滑动窗口中的字符串的字符分布情况,确定所述滑动窗口中的字符串的分数;S3、以预设步长向所述待处理模式字符串的尾/头端移动所述滑动窗口,继续执行所述S2,直到所述滑动窗口的尾/头端与所述待处理模式字符串的尾/头端之间的间隔长度小于所述预设步长;S4、基于所述待处理模式字符串处于所述滑动窗口中的各个字符串的分数,确定所述待处理模式字符串的过滤字符串,继续执行S1以处理下一个模式字符串,直到各个模式字符串均完成过滤字符串的确定。一种可选的实施方式中,所述S4中确定所述待处理模式字符串的过滤字符串之后,还包括:统计所述过滤字符串中各个字符的出现次数;利用各个字符与对应的出现次数更新字符出现频率表;相应的,所述基于所述待处理模式字符串处于所述滑动窗口中的字符串的字符分布情况,确定所述字符串的分数,包括:基于所述待处理模式字符串处于所述滑动窗口中的字符串中各个字符在所述字符出现频率表中的出现次数,确定所述字符串的分数;其中,所述分数与所述出现次数负相关。一种可选的实施方式中,所述基于所述待处理模式字符串处于所述滑动窗口中的字符串中各个字符在所述字符出现频率表中的出现次数,确定所述字符串的分数,包括:确定所述待处理模式字符串处于所述滑动窗口中的字符串中各个字符在所述字符出现频率表中的出现次数,并计算各个字符的出现次数的平均值;如果所述平均值大于预设阈值,则基于所述平均值确定所述字符串的分数;其中,所述分数与所述平均值负相关。一种可选的实施方式中,所述方法还包括:如果所述平均值不大于所述预设阈值,则基于所述待处理模式字符串处于所述滑动窗口中的字符串中连续重复字符的重复个数,确定所述字符串的分数;其中,所述分数与所述重复个数负相关。一种可选的实施方式中,所述基于所述待处理模式字符串处于所述滑动窗口中的字符串的字符分布情况,确定所述字符串的分数,包括:基于所述待处理模式字符串处于所述滑动窗口中的字符串中连续重复字符的重复个数,以及所述字符串中各个字符在所述字符出现频率表中的出现次数,确定所述字符串的分数。一种可选的实施方式中,所述S4中确定所述待处理模式字符串的过滤字符串之后,还包括:记录所述过滤字符串在所述待处理模式字符串中的位置信息。第二方面,本申请还提供了一种模式字符串的处理装置,所述装置包括:第一确定模块,用于将任一模式字符串确定为待处理模式字符串,并将预设长度的滑动窗口的头/尾端与所述待处理模式字符串的头/尾端对齐;第二确定模块,用于基于所述待处理模式字符串处于所述滑动窗口中的字符串的字符分布情况,确定所述滑动窗口中的字符串的分数;移动模块,用于以预设步长向所述待处理模式字符串的尾/头端移动所述滑动窗口,继续触发所述第二确定模块,直到所述滑动窗口的尾/头端与所述待处理模式字符串的尾/头端之间的间隔长度小于所述预设步长;第三确定模块,用于基于所述待处理模式字符串处于所述滑动窗口中的各个字符串的分数,确定所述待处理模式字符串的过滤字符串,继续触发所述第一确定模块,以处理下一个模式字符串,直到各个模式字符串均完成过滤字符串的确定。一种可选的实施方式中,所述装置还包括:统计模块,用于统计所述过滤字符串中各个字符的出现次数;更新模块,用于利用各个字符与对应的出现次数更新字符出现频率表;相应的,所述第二确定模块,具体用于:基于所述待处理模式字符串处于所述滑动窗口中的字符串中各个字符在所述字符出现频率表中的出现次数,确定所述字符串的分数;其中,所述分数与所述出现次数负相关。第三方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上述任一项所述的方法。第四方面,本申请还提供了一种内模式字符串的处理设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述任一项所述的方法。本申请实施例提供的模式字符串的处理方法中,在进行多模字符串的匹配之前,首先基于模式字符串的字符分布情况,为各个模式字符串动态确定过滤字符串,使得过滤字符串不再是固定位置的字符。基于本申请实施例动态确定的过滤字符串进行多模字符串的匹配,能够避免频繁的进入确认阶段导致的性能大幅下降的情况,从而提高了匹配效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种模式字符串的处理方法的流程图;图2为本申请实施例提供的另一种模式字符串的处理方法的流程图;图3为本申请实施例提供的一种模式字符串的处理装置的结构示意图;图4为本申请实施例提供的一种模式字符串的处理设备的结构示意图。图5为本申请实施例中由“search”、“filter”和“algorithm”三个模式字符串中的字符构成过滤字符串的示意图;图6为本申请实施本文档来自技高网...

【技术保护点】
1.一种模式字符串的处理方法,其特征在于,所述方法包括:/nS1、将任一模式字符串确定为待处理模式字符串,并将预设长度的滑动窗口的头/尾端与所述待处理模式字符串的头/尾端对齐;/nS2、基于所述待处理模式字符串处于所述滑动窗口中的字符串的字符分布情况,确定所述滑动窗口中的字符串的分数;/nS3、以预设步长向所述待处理模式字符串的尾/头端移动所述滑动窗口,继续执行所述S2,直到所述滑动窗口的尾/头端与所述待处理模式字符串的尾/头端之间的间隔长度小于所述预设步长;/nS4、基于所述待处理模式字符串处于所述滑动窗口中的各个字符串的分数,确定所述待处理模式字符串的过滤字符串,继续执行S1以处理下一个模式字符串,直到各个模式字符串均完成过滤字符串的确定。/n

【技术特征摘要】
1.一种模式字符串的处理方法,其特征在于,所述方法包括:
S1、将任一模式字符串确定为待处理模式字符串,并将预设长度的滑动窗口的头/尾端与所述待处理模式字符串的头/尾端对齐;
S2、基于所述待处理模式字符串处于所述滑动窗口中的字符串的字符分布情况,确定所述滑动窗口中的字符串的分数;
S3、以预设步长向所述待处理模式字符串的尾/头端移动所述滑动窗口,继续执行所述S2,直到所述滑动窗口的尾/头端与所述待处理模式字符串的尾/头端之间的间隔长度小于所述预设步长;
S4、基于所述待处理模式字符串处于所述滑动窗口中的各个字符串的分数,确定所述待处理模式字符串的过滤字符串,继续执行S1以处理下一个模式字符串,直到各个模式字符串均完成过滤字符串的确定。


2.根据权利要求1所述的方法,其特征在于,所述S4中确定所述待处理模式字符串的过滤字符串之后,还包括:
统计所述过滤字符串中各个字符的出现次数;
利用各个字符与对应的出现次数更新字符出现频率表;
相应的,所述基于所述待处理模式字符串处于所述滑动窗口中的字符串的字符分布情况,确定所述字符串的分数,包括:
基于所述待处理模式字符串处于所述滑动窗口中的字符串中各个字符在所述字符出现频率表中的出现次数,确定所述字符串的分数;其中,所述分数与所述出现次数负相关。


3.根据权利要求1所述的方法,其特征在于,所述基于所述待处理模式字符串处于所述滑动窗口中的字符串中各个字符在所述字符出现频率表中的出现次数,确定所述字符串的分数,包括:
确定所述待处理模式字符串处于所述滑动窗口中的字符串中各个字符在所述字符出现频率表中的出现次数,并计算各个字符的出现次数的平均值;
如果所述平均值大于预设阈值,则基于所述平均值确定所述字符串的分数;其中,所述分数与所述平均值负相关。


4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果所述平均值不大于所述预设阈值,则基于所述待处理模式字符串处于所述滑动窗口中的字符串中连续重复字符的重复个数,确定所述字符串的分数;其中,所述分数与所述重复个数负相关。


5.根据权利要求2所述的方法,其特征在于,所述基于所述待处理模式字符串处于所述滑动窗口中...

【专利技术属性】
技术研发人员:谭天
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1