字符串匹配方法和装置的制造方法_5

文档序号:9708289阅读:来源:国知局
字符串进行第二次字符串匹配,能够使得 字符串匹配的效率更高。
[0164] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制; 尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其 依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征 进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技 术方案的范围。
【主权项】
1. 字符串匹配方法,其特征在于,包括: 获取前缀状态自动机,所述前缀状态自动机是由模式字符串的前缀按照多模式字符串 匹配算法构成的状态自动机,所述模式字符串为字符串匹配时所用的特征字符串,所述前 缀由从所述模式字符串第一个字符开始逐个提取预设值个数的字符组合而成; 获取待匹配字符串,根据所述前缀状态自动机对所述待匹配字符串进行字符串匹配, 以便所述字符串匹配成功后中央处理器利用所述模式字符串的后缀对所述待匹配字符串 进行第二次字符串匹配。2. 根据权利要求1所述的方法,其特征在于,所述获取前缀状态自动机包括: 从存储器中获取所述前缀状态自动机,所述前缀状态自动机按照稀疏矩阵的方式存储 在所述存储器内存中,所述稀疏矩阵中的行表示所述前缀状态自动机的各个状态,所述稀 疏矩阵每一列对应一个输入,所述稀疏矩阵中的列表示所述前缀状态自动机接收到每一列 对应的输入时状态跳转的下一跳状态,其中-1表示在该行所示的状态下有字符串被成功 匹配; 在所述存储器中存储有匹配列表,所述匹配列表包括所述前缀状态自动机的每一个状 态以及与每一个状态对应的地址,若其中第一状态对应的地址不为空,贝1J表不在该第一状 态下有所述模式字符串的前缀被成功匹配,该第一状态对应的地址为被成功匹配到的所述 模式字符串的前缀的存储地址。3. 根据权利要求1所述的方法,其特征在于,所述获取待匹配字符串,所述根据所述前 缀状态自动机对所述待匹配字符串进行字符串匹配包括: 获取所述待匹配字符串,从所述待匹配字符串的首个字符开始,由至少一个线程将所 述待匹配字符串中的每个字符输入到所述前缀状态自动机中,当所使用的线程数量大于1 时,每两个线程输入的所述待匹配字符串中相同位置的字符数量等于所述预设值; 当所述待匹配字符串中的每一个字符都在所述前缀状态自动机中完成匹配过程,则生 成匹配结果,并将所述匹配结果存储在存储器中。4. 字符串匹配方法,其特征在于,包括: 获取后缀状态自动机,所述后缀状态自动机是由模式字符串的后缀按照多模式字符串 匹配算法构成的状态自动机,且所述后缀状态自动机不包括状态回溯,所述模式字符串为 字符串匹配时所用的特征字符串,所述后缀的长度为所述模式字符串的长度与预设值的差 值; 在图形处理器对所述待匹配字符串进行字符串匹配成功后,获取待匹配字符串,根据 所述后缀状态自动机对所述待匹配字符串进行字符串匹配。5. 根据权利要求4所述的方法,其特征在于,在获取所述状态自动机之前,所述方法还 包括: 将所述模式字符串拆分为前缀和后缀,所述前缀由从所述模式字符串第一个字符开始 逐个提取所述预设值个数的字符组合而成,所述后缀为所述模式字符串减去所述前缀后剩 下的部分; 将所述前缀按照多模式字符串匹配算法生成前缀状态自动机并存储于存储器中,将所 述后缀按照多模式字符串匹配算法生成后缀状态自动机,并去除所述后缀状态自动机中的 状态回溯。6. 根据权利要求5所述方法,其特征在于,所述前缀状态自动机与所述后缀状态自动 机按照稀疏矩阵的方式存储在所述存储器中,所述稀疏矩阵中的行表示所述后缀状态自动 机的各个状态,所述稀疏矩阵每一列对应一个输入,所述稀疏矩阵中的列表示所述后缀状 态自动机接收到每一列对应的输入时状态跳转的下一跳状态,其中-1表示在该行所示的 状态下有字符串被成功匹配; 在所述存储器中存储有匹配列表,所述匹配列表包括所述后缀状态自动机的每一个状 态以及与每一个状态对应的地址,若其中第一状态对应的地址不为空,贝1J表不在该第一状 态下有所述模式字符串的后缀被成功匹配,该第一状态对应的地址为被成功匹配到的所述 模式字符串的后缀的存储地址。7. 根据权利要求4所述的方法,其特征在于,所述获取待匹配字符串,根据所述状态自 动机对所述待匹配字符串进行字符串匹配包括: 获取所述待匹配字符串,从所述待匹配字符串的第一位置开始,由至少一个线程将所 述待匹配字符串中的所述第一位置以后的每个字符输入到所述后缀状态自动机中,所述第 一位置为所述前缀在所述待匹配字符串中被成功匹配到的位置,当所使用的线程数量大于 1时,每两个线程输入的所述待匹配字符串中相同位置的字符数量等于所有所述后缀中长 度的最大值。8. 字符串匹配装置,其特征在于,所述装置包括: 自动机获取单元,用于获取前缀状态自动机,所述前缀状态自动机是由模式字符串的 前缀按照多模式字符串匹配算法构成的状态自动机,所述模式字符串为字符串匹配时所用 的特征字符串,所述前缀由从所述模式字符串第一个字符开始逐个提取预设值个数的字符 组合而成; 匹配单元,用于从所述自动机获取单元获取所述前缀状态自动机,获取待匹配字符串, 根据所述前缀状态自动机对所述待匹配字符串进行字符串匹配,以便所述字符串匹配成功 后中央处理器利用所述模式字符串的后缀对所述待匹配字符串进行第二次字符串匹配。9. 根据权利要求8所述的装置,其特征在于,所述自动机获取单元具体用于: 从存储器中获取所述前缀状态自动机,所述前缀状态自动机按照稀疏矩阵的方式存储 在所述内存中,所述稀疏矩阵中的行表示所述前缀状态自动机的各个状态,所述稀疏矩阵 每一列对应一个输入,所述稀疏矩阵中的列表示所述前缀状态自动机接收到每一列对应的 输入时状态跳转的下一跳状态,其中-1表示在该行所示的状态下有字符串被成功匹配; 存储器存储器在所述存储器中存储有匹配列表,所述匹配列表包括所述状态自动机的 每一个状态以及与每一个状态对应的地址,若其中第一状态对应的地址不为空,则表示在 该第一状态下有所述模式字符串的前缀被成功匹配,该第一状态对应的地址为被成功匹配 到的所述模式字符串的前缀的存储地址。10. 根据权利要求8所述的装置,其特征在于,所述匹配单元具体用于: 获取所述待匹配字符串,从所述待匹配字符串的首个字符开始,由至少一个线程将所 述待匹配字符串中的每个字符输入到所述状态自动机中,当所使用的线程数量大于1时, 每两个线程输入的所述待匹配字符串中相同位置的字符数量等于所述预设值; 当所述待匹配字符串中的每一个字符都在所述前缀状态自动机中完成匹配过程,则生 成匹配结果,并将所述匹配结果存储在存储器中。11. 字符串匹配装置,其特征在于,包括: 自动机获取单元,用于获取状态自动机,所述状态自动机是由模式字符串的后缀按照 多模式字符串匹配算法构成的状态自动机,且所述状态自动机不包括状态回溯,所述模式 字符串为字符串匹配时所用的特征字符串,所述后缀的长度为所述模式字符串的长度与预 设值的差值; 匹配单元,用于从所述自动机获取单元获取所述后缀状态自动机,在图形处理器对所 述待匹配字符串进行字符串匹配成功后,获取待匹配字符串,根据所述后缀状态自动机对 所述待匹配字符串进行字符串匹配。12. 根据权利要求11所述的装置,其特征在于,所属装置还包括: 拆分单元,用于将所述模式字符串拆分为前缀和后缀,所述前缀由从所述模式字符串 第一个字符开始逐个提取所述预设值个数的字符组合而成,所述后缀为所述模式字符串减 去所述前缀后剩下的部分; 状态自动机生成单元,用于从所述拆分单元中获取所述前缀与所述后缀,将所述前缀 按照多模式字符串匹配算法生成前缀状态自动机并存储于存储器存储器中,将所述后缀按 照多模式字符串匹配算法生成后缀状态自动机,并去除所述后缀状态自动机中的状态回 溯。13. 根据权利要求12所述的装置,其特征在于,所述前缀状态自动机与所述后缀状态 自动机按照稀疏矩阵的方式存储在所述存储器存储器中,所述稀疏矩阵中的行表示所述后 缀状态自动机的各个状态,所述稀疏矩阵每一列对应一个输入,所述稀疏矩阵中的列表示 所述后缀状态自动机接收到每一列对应的输入时状态跳转的下一跳状态,其中-1表示在 该行所示的状态下有字符串被成功匹配; 在所述存储器中存储有匹配列表,所述匹配列表包括所述后缀状态自动机的每一个状 态以及与每一个状态对应的地址,若其中第一状态对应的地址不为空,贝1J表不在该第一状 态下有所述模式字符串的后缀被成功匹配,该第一状态对应的地址为被成功匹配到的所述 模式字符串的后缀的存储地址。14. 根据权利要求11所述的装置,其特征在于,所述匹配单元具体用于: 获取所述待匹配字符串,从所述待匹配字符串的第一位置开始,由至少一个线程将所 述待匹配字符串中的所述第一位置以后的每个字符输入到所述后缀状态自动机中,所述第 一位置为所述前缀在所述待匹配字符串中被成功匹配到的位置,当所使用的线程数量大于 1时,每两个线程输入的所述待匹配字符串中相同位置的字符数量等于所有所述后缀中长 度的最大值。
【专利摘要】本发明的实施例提供一种字符串匹配方法和装置,涉及计算机领域,能够使得字符串匹配的效率更高,其方法为:首先中央处理器将模式字符串分为前缀和后缀,并分别生成前缀状态自动机和后缀状态自动机,图形处理器利用前缀状态自动机对待匹配字符串进行字符串匹配,匹配成功后,由中央处理器利用后缀状态自动机对待匹配字符串进行第二次字符串匹配。本发明实施例用于字符串匹配。
【IPC分类】G06F17/30
【公开号】CN105468588
【申请号】CN201410240320
【发明人】廖勇, 文刘飞, 朱葛
【申请人】华为技术有限公司, 电子科技大学
【公开日】2016年4月6日
【申请日】2014年5月30日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1