[发明专利]字符串匹配方法及装置在审
申请号: | 202111387749.2 | 申请日: | 2021-11-22 |
公开(公告)号: | CN114168807A | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 姚昊;张立侠;汤奔;任宇阳;杜君尧;潘炼;郭强;李武平;楼宝川;李志鹏 | 申请(专利权)人: | 中核核电运行管理有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903;G06F40/126 |
代理公司: | 核工业专利中心 11007 | 代理人: | 王朋 |
地址: | 314300 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 字符串 匹配 方法 装置 | ||
本公开属于核电技术领域,具体涉及一种字符串匹配方法及装置。本公开中,在每读取一页文档的情况下,判断该页文档全部字符在位图对应位的范围内目标数值的个数是否符合所述特定字符串字符的个数,在判断该页文档全部字符在位图对应位的范围内目标数值的个数符合所述特定字符串字符的个数时,根据位图对应位值为目标数值的字符在该页文档中出现的位置,判断该页文档中是否存在特定字符串,本公开运用位图算法的思想,使计算机能够进行快速匹配的同时消耗较小的内存。此外,本公开设计将位图与对应的键值对键值对集合结合起来,达到实现特定字符串匹配的目的。
技术领域
本发明属于核电技术领域,具体涉及一种字符串匹配方法及装置。
背景技术
目前用于匹配文档中字符串的方法通常是使用正则表达式来匹配文档中内容,且根据KMP(Knuth-Morris-Pratt)算法及其变种来快速查找与判断。但是上述方法计算耗时长,效率低下,严重影响字符匹配的速度。因此,亟需提高文档字符串的匹配效率。
发明内容
为克服相关技术中存在的问题,提供了一种字符串匹配方法及装置。
根据本公开实施例的一方面,提供一种字符串匹配方法,所述方法包括:
读取输入的文档,并将所述文档中的各字符进行编码处理后得到每个字符对应的编码;
针对每个字符,将该字符的编码在位图对应位上的值设置为目标数值,生成该字符的键值对集合,每个字符的键值对集合中,键为该字符的编码,值为该字符在文档中的位置;
生成待匹配的特定字符串的字符编码;
在每读取一页文档的情况下,判断该页文档全部字符在位图对应位的范围内目标数值的个数是否符合所述特定字符串字符的个数;
在判断该页文档全部字符在位图对应位的范围内目标数值的个数符合所述特定字符串字符的个数时,根据位图对应位值为目标数值的字符在该页文档中出现的位置,判断该页文档中是否存在特定字符串;
在判断该页文档全部字符在位图对应位的范围内目标数值的个数不符合所述特定字符串字符的个数时,读取该页文档的下一页文档,直至文档内容结束。
在一种可能的实现方式中,所述方法还包括:
若字符在文档中出现在多个位置,则将该字符在该文档中的所有位置存储在该字符对应。
在一种可能的实现方式中,根据位图对应位值为目标数值的字符在该页文档中出现的位置,判断该页文档中是否存在特定字符串,包括:
以所述特定字符串中每个字符的键值对集合的值为索引建立B+树,该B+树中叶子节点的值为该键值对集合的键,根据索引的值查找存在的键及其位置,判断该页文档中是否存在特定字符串。
根据本公开实施例的另一方面,提供一种字符串匹配装置,所述装置包括:
第一模块,用于读取输入的文档,并将所述文档中的各字符进行编码处理后得到每个字符对应的编码;
第二模块,用于针对每个字符,将该字符的编码在位图对应位上的值设置为目标数值,生成该字符的键值对集合,每个字符的键值对集合中,键为该字符的编码,值为该字符在文档中的位置;
第三模块,用于生成待匹配的特定字符串的字符编码;
第四模块,用于在每读取一页文档的情况下,判断该页文档全部字符在位图对应位的范围内目标数值的个数是否符合所述特定字符串字符的个数;
第五模块,用于在判断该页文档全部字符在位图对应位的范围内目标数值的个数符合所述特定字符串字符的个数时,根据位图对应位值为目标数值的字符在该页文档中出现的位置,判断该页文档中是否存在特定字符串;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中核核电运行管理有限公司,未经中核核电运行管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111387749.2/2.html,转载请声明来源钻瓜专利网。