字符串的匹配查找方法、装置及终端制造方法及图纸

技术编号:26689790 阅读:24 留言:0更新日期:2020-12-12 02:39
本发明专利技术涉及数据查找识别技术领域,本发明专利技术旨在解决现有的字符串的匹配查找方法存在效率低的问题,提出一种字符串的匹配查找方法、装置及终端,方案概括为:将字符子串和字符主串左对齐,将字符子串和字符主串的每一个字符依次进行比较,当字符子串的某一个字符与字符主串对应位置上的字符匹配失败时,判断字符子串的最后一个字符与字符主串对应位置的字符是否相等,若是,则用于计算对应位置的字符子串向右移动距离的字符是字符主串对应位置的字符的下一个字符,否则,用于计算字符子串向右移动距离的字符就是字符主串中的最后一个字符;在字符子串向右移动一定距离后,继续进行下一次匹配。本发明专利技术提升了字符串的匹配效率。适用于入侵检测系统。

【技术实现步骤摘要】
字符串的匹配查找方法、装置及终端
本专利技术涉及数据查找识别
,具体来说涉及一种字符串的匹配查找方法、装置及终端。
技术介绍
随着计算机网络技术在各领域的飞速发展和广泛应用,各类资源由于病毒、黑客等容易遭到泄露、更改和破坏,造成系统异常甚至崩溃瘫痪,导致巨大的经济损失。频出的网络安全问题受到了人们的高度重视,以保护网络信息免受各种攻击为目的的计算机网络安全技术变得越来越重要。入侵检测系统就是应用最广泛的计算机网络安全技术之一,它是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。字符串匹配是入侵检测系统中的一种常用分析方法,其效率的高低很大程度决定了入侵检测系统的性能。经过几十年国内外的研究和实践,在众多已有的字符串匹配算法中,Horspool算法是匹配次数较少,过程较简化的一种经典算法。Horspool算法是一种基于后缀的匹配方法,即比较顺序是从最后一个字符开始,方向是从右往左。具体运算过程是,将文本字符主串的最后一个字符跟文本字符子串的最后一个字符比较,如果相等则从右往左对主串和子串的每一个字符依次进行比较,直到所有的字符完全相等或者在某个字符处不匹配为止。如果不匹配再根据主串的最后一个字符在子串中的下一个出现位置将子串向右移动一定距离,然后继续下一次匹配。重复上述过程,直到在文本字符主串中找到文本字符子串的所有出现,算法终止。传统的Horspool算法的核心原理可抽象概括为:假设子串S的长度为m,当匹配失败时,在主串M中与子串S的最后一个字符相对应的字符,如果没有在子串S的前m-1个字符中,那么子串S向右移动的距离是m,其余情况下子串S能够向右移动的距离均小于m。因此,每一次匹配失败后,Horspool算法能够向右移动的最大距离是子串S的长度m,使得基于传统Horspool算法的字符串的匹配查找方法存在效率低的问题。
技术实现思路
本专利技术旨在解决现有的字符串的匹配查找方法存在效率低的问题,提出一种字符串的匹配查找方法、装置及终端。本专利技术解决上述技术问题所采用的技术方案是:字符串的匹配查找方法,包括以下步骤:步骤1、将字符主串的第一个字符与字符子串的第一个字符对齐,设字符子串的长度为m,字符主串的长度为n,m<n;步骤2、依次比较字符主串与字符子串的对应位置上的字符是否匹配,当所述字符子串的所有字符与字符主串的对应位置上的字符匹配时,匹配流程结束;步骤3、当所述字符子串的某一字符与字符主串的对应位置上的字符不匹配时,判断字符子串的最后一个字符与字符主串对应位置上的字符是否匹配,若是,则进入步骤4,否则,进入步骤5;步骤4、根据字符主串的第一位置上的字符计算移动距离,所述第一位置为字符子串的最后一个字符的对应位置的下一位置;步骤5、根据字符主串的第二位置上的字符计算移动距离,所述第二位置为字符子串的最后一个字符的对应位置;步骤6、根据步骤4或步骤5计算出的移动距离将所述字符子串向右移动后,进入步骤2。进一步的,步骤3中,所述根据字符主串的第一位置上的字符计算移动距离的方法包括:判断字符子串的前m-1个字符中是否包含字符主串的第一位置上的字符,若是,则移动距离为字符子串的前m-1个字符中,最右边的字符主串的第一位置上的字符与字符子串的最后一个字符的距离加一,否则,移动距离为字符子串的长度加一。进一步的,步骤4中,所述根据字符主串的第二位置上的字符计算移动距离的方法包括:判断字符子串的前m-1个字符中是否包含字符主串的第二位置上的字符,若是,则移动距离为字符子串的前m-1个字符中,最右边的字符主串的第二位置上的字符与字符子串的最后一个字符的距离,否则,移动距离为字符子串的长度。进一步的,步骤2中,所述依次比较字符主串与字符子串的对应位置上的字符是否匹配的方法包括:从右到左依次比较字符主串与字符子串的对应位置上的字符是否匹配。本专利技术还提出一种字符串的匹配查找装置,包括:对齐单元、匹配单元、计算单元和移动单元;所述对齐单元用于将字符主串的第一个字符与字符子串的第一个字符对齐,设字符子串的长度为m,字符主串的长度为n,m<n;所述匹配单元用于依次比较字符主串与字符子串的对应位置上的字符是否匹配,当所述字符子串的所有字符与字符主串的对应位置上的字符匹配时,匹配流程结束;当所述字符子串的某一字符与字符主串的对应位置上的字符不匹配时,判断字符子串的最后一个字符与字符主串对应位置上的字符是否匹配;所述计算单元用于在字符子串的最后一个字符与字符主串对应位置上的字符匹配时,根据字符主串的第一位置上的字符计算移动距离,所述第一位置为字符子串的最后一个字符的对应位置的下一位置;在字符子串的最后一个字符与字符主串对应位置上的字符不匹配时,根据字符主串的第二位置上的字符计算移动距离,所述第二位置为字符子串的最后一个字符的对应位置;所述移动单元用于根据计算单元计算出的移动距离将所述字符子串向右移动。进一步的,所述计算单元还用于:在字符子串的最后一个字符与字符主串对应位置上的字符匹配时,判断字符子串的前m-1个字符中是否包含字符主串的第一位置上的字符,若是,则移动距离为字符子串的前m-1个字符中,最右边的字符主串的第一位置上的字符与字符子串的最后一个字符的距离加一,否则,移动距离为字符子串的长度加一。进一步的,所述计算单元还用于:在字符子串的最后一个字符与字符主串对应位置上的字符不匹配时,判断字符子串的前m-1个字符中是否包含字符主串的第二位置上的字符,若是,则移动距离为字符子串的前m-1个字符中,最右边的字符主串的第二位置上的字符与字符子串的最后一个字符的距离,否则,移动距离为字符子串的长度。进一步的,所述匹配单元还用于:从右到左依次比较字符主串与字符子串的对应位置上的字符是否匹配。本专利技术还提出一种终端,所述终端包括处理器、存储器和通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中的一个或者多个程序,以实现所述字符串的匹配查找方法的步骤。本专利技术的有益效果是:本专利技术所述的字符串的匹配查找方法、装置及终端,当字符子串的最后一个字符与字符主串对应位置上的字符匹配时,根据字符主串的第一位置上的字符计算移动距离,第一位置为字符子串的最后一个字符的对应位置的下一位置,使得最大向右移动的距离是字符子串的长度加一。相较于传统的Horspool算法,增大了字符子串向右移动的距离,减少了每一次匹配的比较次数和算法结束时整体的比较次数,降低了匹配成功的时间成本,提升了字符串的匹配效率。附图说明图1为传统Horspool算法的流程示意图;图2为本专利技术实施例所述的字符串的匹配查找方法的一种流程示意图;图3为本专利技术实施例所述的字符串的匹配查找方法的另一种流程示意图;图4为本专利技术实施例所述的字符串的匹配查找装置的结构示意图;...

【技术保护点】
1.字符串的匹配查找方法,其特征在于,包括以下步骤:/n步骤1、将字符主串的第一个字符与字符子串的第一个字符对齐,设字符子串的长度为m,字符主串的长度为n,m<n;/n步骤2、依次比较字符主串与字符子串的对应位置上的字符是否匹配,当所述字符子串的所有字符与字符主串的对应位置上的字符匹配时,匹配流程结束;/n步骤3、当所述字符子串的某一字符与字符主串的对应位置上的字符不匹配时,判断字符子串的最后一个字符与字符主串对应位置上的字符是否匹配,若是,则进入步骤4,否则,进入步骤5;/n步骤4、根据字符主串的第一位置上的字符计算移动距离,所述第一位置为字符子串的最后一个字符的对应位置的下一位置;/n步骤5、根据字符主串的第二位置上的字符计算移动距离,所述第二位置为字符子串的最后一个字符的对应位置;/n步骤6、根据步骤4或步骤5计算出的移动距离将所述字符子串向右移动后,进入步骤2。/n

【技术特征摘要】
1.字符串的匹配查找方法,其特征在于,包括以下步骤:
步骤1、将字符主串的第一个字符与字符子串的第一个字符对齐,设字符子串的长度为m,字符主串的长度为n,m<n;
步骤2、依次比较字符主串与字符子串的对应位置上的字符是否匹配,当所述字符子串的所有字符与字符主串的对应位置上的字符匹配时,匹配流程结束;
步骤3、当所述字符子串的某一字符与字符主串的对应位置上的字符不匹配时,判断字符子串的最后一个字符与字符主串对应位置上的字符是否匹配,若是,则进入步骤4,否则,进入步骤5;
步骤4、根据字符主串的第一位置上的字符计算移动距离,所述第一位置为字符子串的最后一个字符的对应位置的下一位置;
步骤5、根据字符主串的第二位置上的字符计算移动距离,所述第二位置为字符子串的最后一个字符的对应位置;
步骤6、根据步骤4或步骤5计算出的移动距离将所述字符子串向右移动后,进入步骤2。


2.如权利要求1所述的字符串匹配查找方法,其特征在于,步骤3中,所述根据字符主串的第一位置上的字符计算移动距离的方法包括:
判断字符子串的前m-1个字符中是否包含字符主串的第一位置上的字符,若是,则移动距离为字符子串的前m-1个字符中,最右边的字符主串的第一位置上的字符与字符子串的最后一个字符的距离加一,否则,移动距离为字符子串的长度加一。


3.如权利要求1或2所述的字符串匹配查找方法,其特征在于,步骤4中,所述根据字符主串的第二位置上的字符计算移动距离的方法包括:
判断字符子串的前m-1个字符中是否包含字符主串的第二位置上的字符,若是,则移动距离为字符子串的前m-1个字符中,最右边的字符主串的第二位置上的字符与字符子串的最后一个字符的距离,否则,移动距离为字符子串的长度。


4.如权利要求1所述的字符串匹配查找方法,其特征在于,步骤2中,所述依次比较字符主串与字符子串的对应位置上的字符是否匹配的方法包括:
从右到左依次比较字符主串与字符子串的对应位置上的字符是否匹配。


5.字符串的匹配查找装置,其特征在于,包括:对齐单元、匹配单元、计算单元和移动单元;
所述对齐单元用于将字符主串的第一个字符与字符子串的第一个...

【专利技术属性】
技术研发人员:汪浩徐媛
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川;51

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

1