[发明专利]一种字符串检索方法有效

专利信息
申请号: 202110860647.1 申请日: 2021-07-28
公开(公告)号: CN113590895B 公开(公告)日: 2023-04-25
发明(设计)人: 周明胜;孔明明;裴峥;邓彬彬;姜高雨馨 申请(专利权)人: 西华大学
主分类号: G06F16/903 分类号: G06F16/903
代理公司: 成都弘毅天承知识产权代理有限公司 51230 代理人: 孟仕杰
地址: 610036 四川省*** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 字符串 检索 方法
【权利要求书】:

1.一种字符串检索方法,其特征在于,获得给定模式串与目标串进行匹配的优化顺序,以及匹配过程中模式串在目标串中跳跃匹配的距离,从而达到快速检索的目的,其具体步骤如下:

步骤1、获取模式串中的特征对;

步骤2、获取记录模式串与目标串进行匹配的优化顺序PNext数组;

步骤3、获取记录模式串在目标串中跳跃匹配距离的TNext数组和FNext数组;

步骤4、模式串在目标串中进行从左到右匹配时,如果对应字符适配,根据步骤2获得的匹配顺序依次进行匹配,如果对应字符失配,根据步骤3事先获取的记录数组进行跳跃匹配;

特征对为模式串中出现次数最多的字符对,特征对的个数不少于2,特征对左边的字符称为特征前序,右边的字符称为特征后序,特征前序与特征后序是两个互不相同的字符,将模式串中所有特征对从右至左进行编号,编号从1开始,即最右边的特征对为第一特征对,如果次数最多的字符对有不止1个,选取它们中最右边的字符对作为特征对;

所述步骤2中,当成功获取特征对之后,获取记录模式串字符与目标串字符匹配顺序的PNext数组,具体方法如下:

获取特征对之后,模式串分成特征对和非特征区,构建与模式串等长的PNext数组,将第一个特征后序的位置作为匹配起点,将PNext数组中与匹配起点相同位置的元素赋值为第一个特征对的前序索引,将与第一个特征前序相同位置的元素赋值为下一个特征对的特征后序索引,以此类推;将与最后一个特征对前序位置相同的元素赋值为模式串最右边第一个非特征区字符索引,然后依次从右到左对非特征区字符对应位置进行赋值,每个字符位置对应元素赋值为其相邻的下一个非特征区字符索引,并将PNext数组中最后一个赋值的元素标记为结束标志;

所述步骤3中,当成功获取特征对之后,模式串与目标串字符失配时记录跳跃距离的记录数组的具体获取方法如下:

任意字符失配时根据相应记录数组获取最佳跳跃距离,记录数组包括模式串第一特征对与目标串字符失配时记录最佳跳跃距离的FNext数组,以及模式串除第一特征对之外的字符与目标串字符失配时记录最佳跳跃距离的TNext数组;

FNext数组储存以目标串字符集中的连续两个或者三个字符组成的所有字符串所能提供的最佳跳跃距离,并且每个字符串唯一映射一个FNext数组元素;

首先,获取目标串字符集,计算目标串字符集与自身的一重或二重笛卡尔积,逐一获取由该字符集组成的所有字符串集合,并一一映射到FNext数组中的一个数组元素,即每个字符串唯一对应FNext数组中的一个元素位置,同时对该位置进行赋初值,具体方法如下:

当以两个字符构建FNext数组时,若模式串首字符与获取的两个字符中第二个字符相同,将该字符串映射的数组元素赋值为PLen-1,否则赋值为PLen,其中PLen为模式串长度;

当以三个字符构建FNext数组时,若模式串中首字符、第二字符分别与获取的三个字符中第二个、第三个字符均相同,将该字符串唯一映射的数组元素赋值为PLen-2,若模式串首字符与获取的三个字符中第三个字符相同,将该字符串唯一映射的数组元素赋值为PLen-1,否则赋值为PLen;

然后,对模式串由左至右按长度为2或3的字符进行遍历,对遍历到的每一个字符串计算最佳跳跃距离,其值为该字符串最右边字符与模式串最右边字符在模式串中所在位置之间的距离,将该字符串与FNext数组映射的数组元素重新赋值为该最佳跳跃距离;

当由左至右进行遍历并重新赋值完成之后,FNext数组中的各元素即为模式串中第一个特征对与目标串匹配中失配时,模式串最右边两个或三个字符在目标串中对应位置上的任意字符串所能提供的最佳跳跃距离;

TNext数组具体构建方法为:

构建与模式串等长的TNext数组,TNext数组中每一个数组元素记录对应模式串字符失配时所能提供的最佳跳跃距离,包括模式串中特征对失配时和非特征区字符失配时所能跳跃的最佳距离;

首先,获取特征对失配时所能提供的最佳跳跃距离: 依次对TNext数组中与模式串第二个特征对对应位置相同的数组元素开始进行赋值,将模式串中正在赋值的特征对右边的所有字符称为已知字符串,该字符串中的特征对称为已知特征对,第一个已知特征对为基准特征对,使用模式串从第二个特征开始对依次与基准特征对对齐,利用标识模式串中所有特征前序与特征后序所在位置的Sequence数组、依次记录所有特征前序索引的Index数组和记录相邻特征前序间距的Distance数组构建TNext数组,当已知特征对与模式串特征对完全对齐时,用第一个特征前序索引减去与基准特征对对齐的特征前序索引,得到正在赋值的特征对失配时的最佳跳跃距离;若模式串中各个特征对与基准特征对逐一对齐,但不满足已知特征对与模式串特征对完全对齐的条件,获得该模式串所能提供的最长跳跃距离,最长跳跃距离的获取方法为:判断特征后序与模式串最左边的字符是否相等,若相等,最长跳跃距离即为第一个特征后序的索引值,否则最长跳跃距离即为第一个特征后序的索引值加1,并将TNext数组所有后续待赋值数组元素全部赋值为该最长跳跃距离;

其次,获取非特征区字符失配时所能提供的最佳跳跃距离: 将模式串作为已知字符串,使用特征对失配时获取最佳跳跃距离的方法,获取非特征区字符失配时所能提供的最佳跳跃距离,并将所有TNext数组中与模式串中非特征区字符对应位置的数组元素都赋值为该距离;

其中,Sequence数组、Index数组和Distance数组可在步骤2获取PNext记录数组过程中得到。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西华大学,未经西华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110860647.1/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top