[发明专利]一种字符串匹配方法及装置在审
申请号: | 201310728044.1 | 申请日: | 2013-12-25 |
公开(公告)号: | CN104750683A | 公开(公告)日: | 2015-07-01 |
发明(设计)人: | 任众;李晟;范晓晖;薛峰;刘俊萍 | 申请(专利权)人: | 中国移动通信集团公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F17/22 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 100032 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 字符串 匹配 方法 装置 | ||
技术领域
本发明涉及模式匹配领域,尤其涉及一种字符串匹配方法及装置。
背景技术
字符串匹配是在一个大的目标字符串数据库中搜索出某个给定模式字符串位置的过程。字符串匹配应用较广泛,例如:在入侵检测系统中,为了对网络系统的运行状态进行监视,发现各种攻击企图、攻击行为或者攻击结果,保证系统资源的机密性和可用性,需要对获取的网络数据包进行检测是否存在入侵的非法数据,首先将针对一类数据包的所有已知的入侵行为的模式字符串分别放在模式字符串库中,对入侵的非法数据的检测,可以通过字符串匹配,确定获取的网络数据包的字符串中是否存在模式字符串库中的模式字符串,如果存在,表示存在入侵行为。
目前,现有的字符串匹配的常用的方法如下:
针对一个特定的模式字符串,从待匹配的目标字符串的第一个字符开始,逐个比对连续的字符与模式字符串的位置相同的字符是否相同,并且,在比对的过程中,当目标字符串与模式字符串中的前一对字符相同时,再比对下一对字符是否相同,如果目标字符串与模式字符串中的最后一对字符相同,即目标字符串与模式字符串中的每对字符均相同,表示该模式字符串在该目标字符串中存在,如果在比对的过程中,目标字符串与模式字符串中的一对字符不相同,则确定不相同的该对字符中的属于目标字符串的字符,并从目标字符串的该字符开始,采用与上述相同的方式,逐个比对连续的字符与模式字符串的位置相同的字符是否相同,直到确定该模式字符串在该目标字符串中存在,或者将目标字符串的所有字符比对完毕。
例如:目标字符串A=ababae,模式字符串B=abae,采用上述方案,将模式字符串B与目标字符串A的字符逐个进行比对,当比对到第四个字符时,e≠b,则从目标字符串A的第四个字符b开始继续与模式字符串B的每个字符逐个进行比对。
上述字符串匹配方法,由于当目标字符串与模式字符串中的一对字符不相同时,确定不相同的该对字符中的属于目标字符串的字符,并从目标字符串的该字符开始,继续逐个比对连续的字符与模式字符串的位置相同的字符是否相同,以上述字符串A、B为例,当模式字符串B与目标字符串A的第四个字符比对不相同时,从目标字符串A的第四个字符开始,继续逐个比对连续的字符与模式字符串的位置相同的字符是否相同,但如果从目标字符串的第三个字符开始逐个比对连续的字符与模式字符串的位置相同的字符,则目标字符串A与模式字符串B中的每对字符均相同,因此这种字符串匹配方法的准确度低。
发明内容
本发明实施例提供一种字符串匹配方法及装置,用以解决现有技术中存在字符串匹配方法的准确度低的问题。
本发明实施例提供一种字符串匹配方法,包括:
确定模式字符串首字符在待匹配的目标字符串中存在的各位置;
当所述各位置中存在满足预设条件的位置时,确定所述模式字符串在所述目标字符串中存在,其中,对于满足预设条件的位置,从所述目标字符串的满足预设条件的该位置的字符开始,所述目标字符串与所述模式字符串中的每对位置相同的字符均相同。
采用本发明实施例提供的方法,由于在对待匹配的目标字符串中确定是否存在模式字符串时,首先确定模式字符串首字符在待匹配的目标字符串中存在的各位置,避免了目标字符串中与模式串首字符相同的字符位置可能未进行字符比对的问题,提高了字符串匹配的准确度。
进一步的,确定一个位置是否满足所述预设条件,具体包括:
针对该位置,比对从所述目标字符串的该位置的字符开始连续的字符与所述模式字符串的位置相同的字符是否相同;
当从所述目标字符串的该位置的字符开始,所述目标字符串与所述模式字符串中的每对位置相同字符均相同,确定该位置满足所述预设条件。
进一步的,确定一个位置是否满足所述预设条件,具体包括:
针对该位置,比对从所述目标字符串的该位置的下一个字符开始连续的字符与所述模式字符串的第二个字符开始位置相同的字符是否相同;
当从所述目标字符串的该位置的下一个字符开始,所述目标字符串与所述模式字符串中第二个字符串开始的每对位置相同的字符均相同,确定该位置满足所述预设条件。
进一步的,确定模式字符串首字符在待匹配的目标字符串中存在的各位置,具体包括:
将模式字符串首字符与待匹配的目标字符串中的每个字符进行比对;
将所述目标字符串中与所述首字符相同的字符所在的各位置,确定为所述首字符在所述目标字符串中存在的各位置。
本发明实施例还提供了一种入侵检测方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国移动通信集团公司,未经中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310728044.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种查询处理方法、装置及系统
- 下一篇:一种海量数据的处理方法及装置