数据匹配的方法及装置制造方法及图纸

技术编号:15039368 阅读:64 留言:0更新日期:2017-04-05 13:08
本发明专利技术公开了一种数据匹配的方法及装置,涉及互联网技术领域,能够在减少内存占用的基础上,提供数据匹配效率。所述方法包括:获取文本串以及模式串;在基于前缀匹配算法将模式串中每个字符与文本串进行匹配的过程中,判断文本串中当前被匹配的字符是否为编码标志字符;若否,则当当前被匹配的字符与模式串中当前待匹配的字符相同时,确定字符匹配成功;若是,则当与当前被匹配的字符邻近的后两个字符不为编码字符串时,通过判断后两个字符所组成的数据与当前待匹配的字符在相同数据格式下是否相同来确定是否匹配成功;否则,判断与后两个字符邻近的后一个字符是否为编码标志字符。本发明专利技术主要适用于基于QP编码进行数据匹配的场景中。

【技术实现步骤摘要】

本专利技术涉及互联网
,特别是涉及一种数据匹配的方法及装置。
技术介绍
数据匹配是计算机科学中常用的一种技术。其中,字符串匹配是数据匹配中涉及最为广泛的一种匹配,且主要分为前缀和后缀两大类匹配算法。在实际应用中,对于未经过编码的文本串,可以基于前缀匹配算法或者后缀匹配算法,直接将待匹配的字符串(以下称为模式串)与文本串进行匹配;而对于经过QP编码后的文本串,则需要先对文本串进行解码,然后再将解码后的文本串与模式串进行匹配。然而,当文本串的数据量较大时,对整个文本串进行解码不仅需要占用大量内存,还需要消耗大量解码时间,使得整个匹配效率大大降低。因此,如何在减少内存占用量的基础上,提高字符串匹配效率是当今一大难题。
技术实现思路
有鉴于此,本专利技术提供数据匹配的方法及装置,能够解决现有的字符串匹配过程占用内存量大、匹配效率低的问题。依据本专利技术一个方面,提供了一种数据匹配的方法,所述方法包括:获取文本串以及模式串,所述文本串为经过QP编码后的字符串文本,所述模式串为待匹配的字符串;在基于前缀匹配算法,将所述模式串中每个字符与所述文本串进行匹配的过程中,判断所述文本串中当前被匹配的字符是否为预设的编码标志字符;若所述当前被匹配的字符不为所述编码标志字符,则当所述当前被匹配的字符与所述模式串中当前待匹配的字符相同时,确定字符匹配成功;若所述当前被匹配的字符为所述编码标志字符,则当与所述当前被匹配的字符邻近的后两个字符不为预设的编码字符串时,通过判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同来确定字符是否匹配成功;否则,继续判断与所述后两个字符邻近的后一个字符是否为所述编码标志字符。可选的,所述编码标志字符为符号“=”;和/或,所述编码字符串为符号“\\r\\n”。可选的,通过判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同来确定字符是否匹配成功包括:判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同;若两者相同,则确定所述后两个字符所组成的数据与所述当前待匹配的字符匹配成功。可选的,判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同包括:将所述后两个字符所组成的数据作为十六进制的美国标准信息交换ASCII码,并对所述十六进制的ASCII码进行解码,获得解码后的字符;判断所述解码后的字符是否与所述当前待匹配的字符相同。可选的,若所述前缀匹配算法为shift-and算法,则判断所述解码后的字符是否与所述当前待匹配的字符相同包括:根据所述解码后的字符对应的辅助表中的位掩码,更新预设掩码;当更新后的预设掩码中对应的匹配位置为1时,确定所述解码后的字符与所述当前待匹配的字符相同。可选的,判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同包括:将所述当前待匹配的字符转换为十六进制的数据;判断获得的十六进制的数据是否与所述后两个字符所组成的数据相同。依据本专利技术一个方面,提供了一种数据匹配的装置,所述装置包括:获取单元,用于获取文本串以及模式串,所述文本串为经过QP编码后的字符串文本,所述模式串为待匹配的字符串;判断单元,用于在基于前缀匹配算法,将所述获取单元获得的所述模式串中每个字符与所述文本串进行匹配的过程中,判断所述文本串中当前被匹配的字符是否为预设的编码标志字符;确定单元,用于当所述判断单元的判断结果为所述当前被匹配的字符不为所述编码标志字符时,当所述当前被匹配的字符与所述模式串中当前待匹配的字符相同时,确定字符匹配成功;所述确定单元还用于在所述判断单元的判断结果为所述当前被匹配的字符为所述编码标志字符的情况下,当与所述当前被匹配的字符邻近的后两个字符不为预设的编码字符串时,通过判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同来确定字符是否匹配成功;所述判断单元还用于在所述判断单元的判断结果为所述当前被匹配的字符为所述编码标志字符的情况下,当与所述当前被匹配的字符邻近的后两个字符为所述编码字符串时,继续判断与所述后两个字符邻近的后一个字符是否为所述编码标志字符。可选的,所述编码标志字符为符号“=”;和/或,所述编码字符串为符号“\\r\\n”。可选的,所述确定单元包括:判断模块,用于判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同;确定模块,用于当所述判断模块的判断结果为两者相同时,确定所述后两个字符所组成的数据与所述当前待匹配的字符匹配成功。可选的,所述判断模块包括:解码子模块,用于将所述后两个字符所组成的数据作为十六进制的美国标准信息交换ASCII码,并对所述十六进制的ASCII码进行解码,获得解码后的字符;第一判断子模块,用于判断所述解码子模块获得的所述解码后的字符是否与所述当前待匹配的字符相同。可选的,所述第一判断子模块用于当所述前缀匹配算法为shift-and算法时,根据所述解码后的字符对应的辅助表中的位掩码,更新预设掩码;当更新后的预设掩码中对应的匹配位置为1时,确定所述解码后的字符与所述当前待匹配的字符相同。可选的,所述判断模块包括:转换子模块,用于将所述当前待匹配的字符转换为十六进制的数据;第二判断子模块,用于判断所述转换子模块获得的十六进制的数据是否与所述后两个字符所组成的数据相同。借由上述技术方案,本专利技术提供的数据匹配的方法及装置,能够在获得文本串以及模式串后,基于前缀匹配算法开始进行两者的匹配,并且在匹配过程中,先根据编码标志字符以及编码字符串依次对当前被匹配的字符以及与当前被匹配的字符邻近的后两个字符进行判断,然后根据判断结果来确定需要和模式串中当前待匹配的字符相比较的字符,并根据比较结果确定字符是否匹配成功。由此可知,本专利技术能够直接将未编码的模式串与已编码的文本串进行匹配,而无需对文本串进行解码操作,从而不仅减少了字符串匹配过程中的内存占用量,还提高了整个匹配效率。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例提供的一种数据匹配的方法的流程图;图2示出了本专利技术实施例提供的一种字符串匹配的具体流程图;图3示出了本专利技术实施例提供的另一种字符串匹配的具体流程图;图4示出了本专利技术实施例提供的一种数据匹配的装置的组成框图;图5示出了本专利技术实施例提供的另一种数据匹配的装置的组成框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。为了在减少内存占用量的基础上,提高字符串匹配的效率,本专利技术实施例提供了一本文档来自技高网...

【技术保护点】
一种数据匹配的方法,其特征在于,所述方法包括:获取文本串以及模式串,所述文本串为经过QP编码后的字符串文本,所述模式串为待匹配的字符串;在基于前缀匹配算法,将所述模式串中每个字符与所述文本串进行匹配的过程中,判断所述文本串中当前被匹配的字符是否为预设的编码标志字符;若所述当前被匹配的字符不为所述编码标志字符,则当所述当前被匹配的字符与所述模式串中当前待匹配的字符相同时,确定字符匹配成功;若所述当前被匹配的字符为所述编码标志字符,则当与所述当前被匹配的字符邻近的后两个字符不为预设的编码字符串时,通过判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同来确定字符是否匹配成功;否则,继续判断与所述后两个字符邻近的后一个字符是否为所述编码标志字符。

【技术特征摘要】
1.一种数据匹配的方法,其特征在于,所述方法包括:获取文本串以及模式串,所述文本串为经过QP编码后的字符串文本,所述模式串为待匹配的字符串;在基于前缀匹配算法,将所述模式串中每个字符与所述文本串进行匹配的过程中,判断所述文本串中当前被匹配的字符是否为预设的编码标志字符;若所述当前被匹配的字符不为所述编码标志字符,则当所述当前被匹配的字符与所述模式串中当前待匹配的字符相同时,确定字符匹配成功;若所述当前被匹配的字符为所述编码标志字符,则当与所述当前被匹配的字符邻近的后两个字符不为预设的编码字符串时,通过判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同来确定字符是否匹配成功;否则,继续判断与所述后两个字符邻近的后一个字符是否为所述编码标志字符。2.根据权利要求1所述的方法,其特征在于,所述编码标志字符为符号“=”;和/或,所述编码字符串为符号“\\r\\n”。3.根据权利要求1或2所述的方法,其特征在于,通过判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同来确定字符是否匹配成功包括:判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同;若两者相同,则确定所述后两个字符所组成的数据与所述当前待匹配的字符匹配成功。4.根据权利要求3所述的方法,其特征在于,判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同包括:将所述后两个字符所组成的数据作为十六进制的美国标准信息交换ASCII码,并对所述十六进制的ASCII码进行解码,获得解码后的字符;判断所述解码后的字符是否与所述当前待匹配的字符相同。5.根据权利要求4所述的方法,其特征在于,若所述前缀匹配算法为shift-and算法,则判断所述解码后的字符是否与所述当前待匹配的字符相同包括:根据所述解码后的字符对应的辅助表中的位掩码,更新预设掩码;当更新后的预设掩码中对应的匹配位置为1时,确定所述解码后的字符与所述当前待匹配的字符相同。6.根据权利要求3所述的方法,其特征在于,判断所述后两个字符所组成的数据与所述当前待匹配的字符在相同数据格式下是否相同包括:将所述当前待匹配的字符转换为十六进制的数据;判断获得的十六进制的数据是否与所述后两个字符所组成的数据相同。7.一种数据匹配的装置,其特征在于,所述装置包括:获取单元,用于获取文本串以及模式串,所述文本串...

【专利技术属性】
技术研发人员:孙浩
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁;21

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

1