当前位置: 首页 > 专利查询>西门子公司专利>正文

一种分段模式匹配方法及其装置制造方法及图纸

技术编号:2831940 阅读:273 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及字符串模式匹配,具体的讲是一种分段模式匹配方法及其装置。为了解决现有模式匹配的资源消耗大,硬件要求高的缺点,本发明专利技术方法为,根据预定规则将关键字字符串分割成至少一个关键字字符串片段,将所述关键字字符串片段生成关键字树;根据所述预定规则将用户输入的待处理字符串分割成至少一个待处理字符串片段,作为状态机的输入;由所述状态机根据AC匹配算法将所述待处理字符串片段在所述关键字树节点中进行匹配操作,每个节点分支的判断条件都是所述关键字字符串片段;如果所述待处理字符串片段匹配成功,则返回该匹配的模式ID。本发明专利技术的有益效果在于,能够提高字符串模式匹配的效率,并且降低了对硬件资源的要求。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别涉及字符串模式匹配领域,具体来讲是一 种分段模式匹配方法及其装置
技术介绍
现在,通过互联网,每一个人都能非常容易地发布自己的信息,这同时 也意味着在互联网上充斥着海量的信息,而且这些信息是各种各样的。在这 些信息当中,有许多有价值的信息,但是同时,更多的是一些垃圾信息,比 如垃:t及邮件等等。在实际生活中,人们通常只是想阅读自己感兴趣的东西,而不想去阅读 自己不感兴趣的东西。不幸的是,互联网本身并没有提供这种机制,所以, 互联网的用户直接面临着在网上无限制传播的大量信息,会很容易地被信息 流所淹没。面对这海量的信息,过滤是帮助人们获得有价值信息的有用工具,通过过滤,互联网的用户只需要花很少的时间就能获得自己感兴趣的信息;网络设备可以过滤掉有害信息,或者识别出特别的重要信息。模式匹配的算 法解决了这个问题,在模式匹配中找到匹配集中最合适的关键字是十分重要的。多模式的匹配即是有K个模式P[l] ...P[K]和一个文本T,寻找K个模 式中的任何一个模式在T中是否出现以及出现的位置,1975年由A.V.Aho 和M. J. Corasick^^开了一种有限子动^L的多^t式匹配算法(AC算法),能 够有效的对文本进行匹配和过滤,以使文献检索变得更加迅速。图1为现有AC算法的模式匹配集和示意图。图中虚线方框内的就是匹 配的模式。规定模式的集合为PI: */movie/*P2: */music/*P3: */root/public/ *P4: */movie/comedy/*其中通配符*在两端的意思为,以这些模式为关键字,可能出现在一个字符串或者文本的任意部分。对于AC算法来说,它的处理方法是基于一 个关键字树,这个关键字树由匹配集合中的所有关键字构成,每个节点分支 的判断条件都是一个字符。当对一字符串进行分析时,该字符串逐字符穿过 关键字树直到整个字符串都被分析完成为止。由一个状态机对关键字树进行 匹配操作,关键字树的每一个节点都为有限状态机的一个可能状态。其中, 节点为静态的,是可能的状态的描述,而状态是状态机在某一特定时刻的描 述。中国专利200410023142, —种基于特征值的多才莫式匹配算法及硬件实现 专利,公开了一种对信息进行两次匹配的方法,先滤除一些不重要的信息, 对感兴趣的信息进行第二次滤除,但是该方法需的存储器容量也很大,并且 该方法的匹配速度不够理想。
技术实现思路
为了解决以上问题,本专利技术提供一种分段模式匹配方法,将格式化的字 符串进行分^R并进行模式匹配,以达到更快速的效杲。为了解决以上问题,本专利技术提供一种分段模式匹配装置,将字符串分段, 并进行模式匹配以达到对硬件要求4氐的效果。一种分段模式匹配方法,包括,步骤1,根据模式字符串中的特殊符号或者根据语言结构将模式字符串 划分成至少一个关键字字符串片段,由编译器利用现有匹配算法规则将所述 关键字字符串片段生成关键字树,所述关键字树的每个节点都包含至少一个 关键字字符串片段,该节点的分支条件是另 一个关键字字符串片段;步骤2, 4艮据才莫式字符串中的特殊符号或者根据语言结构将用户输入的 待处理字符串划分成至少一个待处理字符串片段,作为状态机的输入;步骤3,由所述状态机根据所述现有匹配算法将所述待处理字符串片段 在所述关键字树节点中进行匹配操作;步骤4,如果在匹配的所述关键字树节点的数据结构中具有模式匹配成 功的标志,则记录或者输出该匹配的模式ID;步骤5,如果所有所述待处理的字符串片段处理完毕,则结束,否则在 所述状态机中处理下一个所述待处理字符串片段,重复步骤3-5。所述步骤3中,使用哈希算法或者二分法将待处理字符串片段与节点分支条件进行字符串之间的匹配。 还包括一排序步骤,在步骤1中,将待处理字符串分革更后,由一排序单元将所述关键字字符串片^殳4安照预定的顺序排序,并输入所述编译器,由所述编译器生成关4建字 树;在步骤2中,将待处理字符串分割成至少一个待处理字符串片段后,由 所述排序单元将所述待处理字符串片段按照所述预定顺序输入所述状态机, 以进行步骤3至步骤5。还包括一合并步骤在步骤l中,将模式字符串分段后,按照下述合并规则由一合并单元将 所述关键字字符串片段合并成新的关键字字符串片段将所述关键字树同一 支路中相邻的只具有一个分支的节点合并;或者将上述合并的节点与其最后 一个节点相邻的,并且具有至少两个分支的节点合并;合并后输入所述编译 器,由编译器重新生成关键字树;在步骤2中,将待处理字符串分段后,按照上述合并规则,由所述合并 单元将所述待处理字符串片段合并成由至少一个待处理字符串片段组成的 新的待处理字符串片段,作为所述状态机的输入。还包括一合并步骤在步骤l中,将所述关键字字符串片段排序后,按照下述合并规则由一 合并单元将所述关键字字符串片段合并成新的关键字字符串片段将所述关 键字树同一支路中相邻的只具有一个分支的节点合并;或者将上述合并的节 点与其最后一个节点相邻的,并且具有至少两个分支的节点合并;合并后输 入所述编译器,由编译器重新生成关键字树;在步骤2中,将所述待处理字符串片段排序后,按照上述合并规则由所 述合并单元将所述待处理字符串片段合并成由至少一个待处理字符串片段 组成的新的待处理字符串片段,作为所述状态机的输入。所述预定顺序包括,按照所述关键字字符串片段和所述待处理字符串片 段读入的先后顺序,或者片段的语法结构进行排序,排序后所述键字字符串 片段和所述待处理字符串片段的顺序相同。一种分段模式匹配装置,包括,分段器,用于根据根据模式字符串中的特殊符号或者根据语言结构将模式字字符串和待处理字符串分段;编译器,与状态才M目连接,用于将所述关键字字符串片段生成关键字树;所述状态机,接收所述分段器传送的待处理字符串片段,利用现有匹配 算法将所述待处理字符串片段在所述关键字树节点中进行匹配操作;输出单元与所述状态机相连接,用于输出与所述待处理字符串的匹配模 式编号。还包括一排序单元,用于将由所述分段器输出的至少2个待处理字符串 片段和所述关键字字符串片段按照预定顺序分别进行排序,将排序后的所述 待处理字符串片段输入所述状态机,将排序后的所述关键字字符串片段输入 所述编译器。还包括一合并单元,用于合并所述待处理字符串片段并传送给所述状态 机,合并所述关键字字符串片段并传送给所述编译器。还包括一合并单元,用于合并所述经过排序单元的待处理字符串片段, 并传送给所述状态机,合并所述经过排序单元的关键字字符串片段,并传送 给所述编译器。本专利技术的有益效果在于,能够更快速的模式匹配,并且节省存储器,更 快速的模式匹配收敛速度。附图说明图1为现有AC算法的模式匹配集合示意图;图2为本专利技术模式匹配第一实施例示意图;图3为本专利技术分^殳才莫式匹配装置示意图;图4为本专利技术模式匹配第二实施例示意图;图5为本专利技术模式匹配第三实施例示意图;图6为本专利技术加入排序单元和合并单元的装置示意图。具体实施方式下面,结合附图对于本专利技术进行如下详细说明。在通常的模式匹配问题中,通配符可以代表许多任意的字符。根据请求 注解文档RFC2396 (Request for Comments Document 2396)中说明的URL,本文档来自技高网
...

【技术保护点】
一种分段模式匹配方法,其特征在于,步骤1,根据模式字符串中的特殊符号或者根据语言结构将模式字符串划分成至少一个关键字字符串片段,由编译器利用现有匹配算法规则将所述关键字字符串片段生成关键字树,所述关键字树的每个节点都包含至少一个关键 字字符串片段,该节点的分支条件是另一个关键字字符串片段;步骤2,根据模式字符串中的特殊符号或者根据语言结构将用户输入的待处理字符串划分成至少一个待处理字符串片段,作为状态机的输入;步骤3,由所述状态机根据所述现有匹配算法将所 述待处理字符串片段在所述关键字树节点中进行匹配操作;步骤4,如果在匹配的所述关键字树节点的数据结构中具有模式匹配成功的标志,则记录或者输出该匹配的模式ID;步骤5,如果所有所述待处理的字符串片段处理完毕,则结束,否则在所述状 态机中处理下一个所述待处理字符串片段,重复步骤3-5。

【技术特征摘要】
1.一种分段模式匹配方法,其特征在于,步骤1,根据模式字符串中的特殊符号或者根据语言结构将模式字符串划分成至少一个关键字字符串片段,由编译器利用现有匹配算法规则将所述关键字字符串片段生成关键字树,所述关键字树的每个节点都包含至少一个关键字字符串片段,该节点的分支条件是另一个关键字字符串片段;步骤2,根据模式字符串中的特殊符号或者根据语言结构将用户输入的待处理字符串划分成至少一个待处理字符串片段,作为状态机的输入;步骤3,由所述状态机根据所述现有匹配算法将所述待处理字符串片段在所述关键字树节点中进行匹配操作;步骤4,如果在匹配的所述关键字树节点的数据结构中具有模式匹配成功的标志,则记录或者输出该匹配的模式ID;步骤5,如果所有所述待处理的字符串片段处理完毕,则结束,否则在所述状态机中处理下一个所述待处理字符串片段,重复步骤3-5。2. 根据权利要求1所述的一种分段模式匹配方法,其特征在于所述步 骤3中,使用哈希算法或者二分法将待处理字符串片段与节点分支条件进行 字符串之间的匹配。3. 根据权利要求1所述的一种分段模式匹配方法,其特征在于还包括 一排序步骤,在步骤1中,将待处理字符串分段后,由一排序单元将所述关键字字符 串片段按照预定的顺序排序,并输入所述编译器,由所述编译器生成关键字 树;在步骤2中,将待处理字符串分割成至少一个待处理字符串片段后,由以进行步骤3至步骤5。4. 根据权利要求1所述的一种分段模式匹配方法,其特征在于还包括 一合并步骤在步骤l中,将模式字符串分段后,按照下述合并规则由一合并单元将 所述关键字字符串片段合并成新的关键字字符串片段将所述关键字树同一 支路中相邻的只具有一个分支的节点合并;或者将上述合并的节点与其最后 一个节点相邻的,并且具有至少两个分支的节点合并;合并后输入所述编译 器,由编译器重新生成关键字树;在步骤2中,将待处理字符串分段后,按照上述合并规则,由所述合并 单元将所述待处理字符串片段合并成由至少一个待处理字符串片段组成的 新的待处理字符串片段,作为所述状态机的输入。5. 根据权利要求3所述的一种分段模式匹配方法,其特征在...

【专利技术属性】
技术研发人员:张若渊阙开良
申请(专利权)人:西门子公司
类型:发明
国别省市:DE[德国]

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

1