基于fa的表项压缩方法及装置、表项匹配方法及装置的制作方法

文档序号:6458022阅读:228来源:国知局

专利名称::基于fa的表项压缩方法及装置、表项匹配方法及装置的制作方法
技术领域
:本发明涉及数据结构
技术领域
,特别涉及一种基于FA的表项压缩方法及装置、表项匹配方法及装置。
背景技术
:RE(RegularExpression,正则表达式)描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子串,并将匹配的子串进行替换,或者从某个字符串中取出符合匹配条件的子串等。RE是由普通字符(例如字符a到z)以及特殊字符(例如元字符*、/等)组成的文字模式,通过RE可以将某个文字模式与所搜索的字符串进行匹配,是字符串模式匹配中最常用的表达方式。RE—般只用来表达一个模式,需要转化为FA(FiniteAutomata,有限自动机)才能用于计算机执行高效的模式匹配。FA由若干状态组成,每种状态在接收到字符后会迁移到其它状态。每个FA都有若干起始状态和接受状态,在FA进行匹配时,首先从起始态开始,顺序将目标字符串的字符作为当前状态的输入,不断循环上述过程,直到到达接受状态或者目标字符串匹配完成,如果最终状态为接受状态则认为匹配成功,否则匹配不成功。以RE"(time\x20|now\t)\d{3,5}s,,为例,其中"\x20,,是空格的ASCII值的16进制表示,"\d"表示任意数字0至9,"\t"表示制表符,T表示逻辑"或","time\x20"表示一个连续的字符串,"{3,5}"表示数字的重复个数最少三个最多五个。该RE用于匹配一个字符串是不是关键字"time",后跟一个空格,或者关键字"now",后跟一个制表符,然后为一个3至5的数字,最后为时间单位s(秒)。该RE转化后的FA状态迁移结构示意图如图1所示每一个圆圏表示一种状态,圆圈中的数字表示状态的索引。图1中从起始态"0"开始,每次处理一个字符,每输入一个有效字符(图中两个圆圏表示的状态之间的箭头线上标注的字符)则进入下一个状态。匹配时,当输入的字符不是该状态能够接受的,则返回起始状,态"0"。在状态"11"和状态"12",如果输入的字符为"\d"则进入对应的下一个状态"12"或状态"13",如果输入的字符为"s",则进入状态"14",状态"14"为4妻受态,用两个同心圆表示,当匹配到该4妄受态时:说明匹配成功,如果目标字符串处理完后仍然没有到达接受态,则匹配失败。上述FA对应的二维存储结构如下表1所示表1<table>tableseeoriginaldocumentpage7</column></row><table>通常FA状态表中每一列代表一个ASCII字符,所以表1应该为256列,但是为了描述和显示方便,将没有出现在RE"(time\x20|now\t)\d{3,5}s,,中的字符,用"其它"列统一表示,该列中的单元格全部为"0",相应的,图1中的每一个状态对应上表l中的一行,其中空格均为"0"。结令上述表l对目标字符串执行匹配时,将初始状态赋值为"0",从初始状态开始顺序读取目标字符,以状态编号为行索引、以字符为列索引找到目标状态值,并赋值给当前状态,然后判断该状态所在行的"接受态"一列是否为1,如果是,则匹配成功退出,如果目标字符串输入完成后仍然没有匹配成功,则匹配失败。发明人在实践中发现,如正则表达式"(time\x20|now\t)\d{3,5}s,,,其中字符串"time\x20,,对应状态0到状态4,上述五个状态具有相似性,即输入一个有效字符后则迁移到下一个状态,否则迁移到状态0;同理,"\d{3,5},,对应状态8到状态12,上述五个状态也具有相似性,即输入数字则迁移到下一个状态,且在满足数字个数的状态输入"s"时都迁移到状态14,否则迁移到状态0。因此对于如表l所示的二维表存储结构,当对应的RE中连续字符的迁移状态相似时,将使该存储结构产生大量冗余,特别当RE表示的迁移状态越多时,产生的冗余与占用的内存空间成正比增加。因此,在表l所示的二维存储结构中,当状态个数小于256个时,每个单元格里的状态索引可以使用一个字节表示,每行需要的存储空间为256个字节;当状态个数在256和65536之间时,每个单元格里的状态索引需要使用二个字节表示,每行需要的存储空间为512字节,因此状态个数越多,每个单元格占用的字节数也就越多,相应占用的内存空间也越大。
发明内容本发明实施例的目的在于提供一种基于FA的表项压缩方法及装置、表项匹配方法及装置,以减少现有FA的二维结构表中的冗余表项,减少二维结构表对内存空间的占用。为实现本发明实施例的目的,本发明实施例提供如下技术方案一种基于FA的表项压缩方法,包括分析原始二维结构表中所有状态的迁移特性;将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。一种基于FA的表项压缩装置,包括分析单元,用于分析原始二维结构表中所有状态的迁移特性;合并单元,用于将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。一种基于FA的表项匹配方法,所述表项为按照权利要求1所述的表项压缩方法生成的二维结构表,包括在当前状态根据读取的目标字符查找所述二维结构表,并记录所述目标字符对应的下一个状态;判断当从所述目标字符开始的连续字符串符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至所述下一个状态。一种基于FA的表项匹配装置,所述表项为按照权利要求1所述的表项压缩方法生成的二维结构表,包括存储单元,用于存储所述二维结构表;查找单元,用于在当前状态根据读取的目标字符查找所述二维结构表,并记录所述目标字符对应的下一个状态;迁移单元,用于判断从所述目标字符开始的连续字符串符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至所述下一个状态。由以上本发明实施例提供的技术方案可见,本发明实施例分析原始二维结构表中所有状态的迁移特性,然后将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。应用本发明表项压缩方法的实施例,通过将原二维结构表中的相似状态合并为一个状态,即压缩了正则表达式中连续字符的相似迁移状态,减少了存储结构中的由于相似状态而产生的大量冗余,节约了内存空间;相应地,当原有二维结构表中的状态个数较多时,由于通过压缩表项使得状态总数下降,因此单元格的状态索引需要的字节数也相应下降,从而降低了内存消耗。图1为现有FA的状态迁移结构示意图;图2为本发明基于FA的表项压缩方法的第一实施例流程图;图3为本发明基于FA的表项压缩方法的第二实施例流程图;图4为本发明FA的状态迁移结构示意图;图5为本发明基于FA的表项匹配方法的第一实施例流程图;图6为本发明基于FA的表项匹配方法的第二实施例流程图;图7为本发明基于FA的表项压缩装置的第一实施例框图;图8为本发明基于FA的表项压缩装置的第二实施例框图;图9为本发明基于FA的表项匹配装置的第一实施例框图;图10为本发明基于FA的表项匹配装置的第二实施例框图。具体实施例方式本发明实施例提供了一种基于FA的表项压缩方法及装置、表项匹配方法及装置,分析原始二维结构表中所有状态的迁移特性,将原始二维结构表中具有统一迁移特性的连续状态进行合并。为了使本
技术领域
的人员更好地理解本发明实施例提供的技术方案,下面结合附图和具体实施方式对本发明实施例提供的技术方案作进一步的详细说明。本发明基于FA的表项生成方法的第一实施例流程如图2所示步骤201:分析原始二维结构表中所有状态的迁移特性。具体的,分析所有状态的迁移特性后为每个状态构造引用集合,该引用集合中包含能够迁移到每个状态的所有状态。步骤202:将原始二维结构表中具有统一迁移特性的连续状态进行合并。其中,具有统一迁移特性的连续状态包括所述连续状态均为输入一个字符后迁移至下一个状态,且所述连续状态的引用集合中有唯一的状态;或者所述连续状态均为满足输入次数的范围时迁移至下一个状态,满足所述输入范围的最小值至最大值之间的状态均迁移至同一过渡状态,且所述连续状态的引用集合中有唯一的状态。具体的,附加控制属性可以包括以下两种所述具有统一迁移特性的连续状态对应的字符串的首字符及后跟字符串,及所述连续状态10与所述对应的字符串不符时的失效状态;或者所述具有统一迁移特性的连续状态对应的当前字符集、所述字符集的、最小输入个数及最大输入个数、过渡字符和过渡迁移状态、及所述连续状态与所述对应的字符串不符时的失效状态。本发明基于FA的表项生成方法的第二实施例流程如图3所示,该实施例示出了对原始二维结构表进行压缩的详细过程步骤301:分析原始二维结构表中所有状态的迁移特性。步骤302:为原始二维结构表中的每个状态构造引用集合。步骤303:顺序扫描原始二维结构表。步骤304:判断当前连续状态是否具有统一的迁移特性,若是,则执行步骤305;否则,执行步骤307。步骤305:为具有统一迁移特性的连续状态分配相同的状态索引,并增加附加控制属性。步骤306:将该连续状态的首状态及其对应的状态索引、附加控制属性按照状态索引的顺序转换到新的二维结构表中,执行步骤309。步骤307:为不具有统一迁移特性的状态重新分配状态索引。步骤308:将上述状态按照状态索引的顺序转换到新的二维结构表中。步骤309步骤判断是否扫描完原始二维结构表,若是,则执行步骤310;否则,返回步骤303。步骤310:返回压缩完成消息并删除原始二维结构表,结束当前流程。结合上述本发明表项压缩方法的实施例,仍然以正则表达式"(time\x20|now\t)\d{3,5}s,,为例,描述基于FA的二维数据结构的压缩过程对应正则表达式"(time\x20|now\t)\d{3,5}s,,的原始二维存储结构如表1所示,对表1中的每个状态,将能够迁移到该状态所有状态进行记录,作为该状态的引用集合,例如表1中能够迁移到状态3的状态为状态2,因此状态3的引用集合中记录了状态2;能够迁移到状态ii8的状态为状态4和状态7,因此状态8的引用集合中记录了状态4和状态7;又.如表1中能够迁移到状态0的状态为状态0至状态14,因此状态0的引用集合中记录了状态0至状态14。开始扫描二维存储结构表1,对于"time\x20",从状态0开始至状态4的每个状态,均为输入一个符合要求的字母后迁移到下一个状态,而且对于每个状态的引用集合,对应了唯一的引用状态;同样的,对于"now\t,,,从状态0以及状态5到状态7的每个状态,也为输入一个符合要求的字母后迁移到下一个状态,而且对于每个状态的引用集合,也对应了唯一的引用状态,因此对上述具有相似迁移特性的状态用一个统一的新索引重新标识。由于初始状态均为状态0,因此对应原有的状态1至状态4,以及状态5至状态7,重新编号后的新索引均为"0"。然后为新索引0设置附加控制属性,该附加控制属性的格式可以为F(当前字符后跟字符串),这样的格式可以为多组,例如对应于"time\x20|now\t"则有两组,即为F(t:ime\x20,n:ow\t),进一步在附加控制属性中添加失效状态属性,本实施例中的失效状态为状态"0",因此最终的附加控制属性为"O,F(t:ime\x20,n:owU)"。对于"\d{3,5},,,从状态8开始可能有三至五个状态,均为输入任意数字后迁移到下一个状态,并且从状态11开始至状态13均有相同的状态迁移,即均可能迁移到状态14,而且对于每个状态的引用集合,对应了唯一的引用状态,因此对上述具有相似迁移特性的状态也用一个统一的新索引重新标识。由于正则表达式前半部分"time\x20|now\t,,的新索引为"0",因此对应原有的状态8至状态13,顺序编号后的新索引均为"1"。然后为"\d{3,5},,设置附加控制属性,该附加属性的格式可以为M(当前字符集:最小个数-最大个数,过渡字符过渡迁移),也可能有多对。对应本发明实施例,加入了失效状态的最终附加控制属性即为"O,M(\d:3-5,s:3)"。对于不符合合并要求的状态13和最终状态14,则直接为其分配顺序编号的新索引"2"和"3"。经过上述合并、重新分配新索引、以及为合并后的新索引增加附加控制属性的操作后,形成的二维中间状态表如下表2所示表2<table>tableseeoriginaldocumentpage13</column></row><table>由于上述中间状态表2中包含了原二维结构表中的迁移状态信息,仍然占用了较多内存,因此对表2再次扫描后,将新的状态索引及附加控制属性转换到新的二维结构表中,即将原有的迁移状态索引替换为新的迁移状态索引,最终生成的压缩后的二维结构表如下表3所示:表3<table>tableseeoriginaldocumentpage14</column></row><table>对应上述压缩后的二维结构表3,新的FA的状态迁移示意图如图4所示从起始状态0开始,可以根据合并后的状态对应的附加控制属性处理目标字符中的连续字符串,而不是仅处理一个字符。即当顺序读取的当前目标字符串满足附加控制属性F(t:imeVx20,n:owU)时,迁移到状态1,当满足附加控制属性MQd:3-5,s:3)时,从状态1迁移到状态2,当读取到字符"s"时,则从状态2迁移到接受状态3。由此可见,应用本发明方法实施例的压缩表项仅包含4个迁移状态,与现有技术中的15个迁移状态相比,极大地降低了存储空间。与本发明基于FA的表项压缩方法的实施例相对应,本发明还提供了基于FA的表项匹配方法的实施例。本发明基于FA的表项匹配方法的第一实施例流程如图5所示步骤501:在当前状态根据读取的目标字符查找压缩表项,并记录目标字符对应的下一个状态。步骤502:当从该目标字符开始的连续字符串符合该目标字符对应的附加控制属性时,从当前状态迁移到所述下一个状态。本发明基于FA的表项匹配方法的第二实施例流程如图6所示,该实施例示出了通过压缩后的二维结构表进行正则表达式匹配的详细过程步骤601:在当前状态根据读取的目标字符查找压缩表项。步骤602:记录该目标字符对应的下一个状态。步骤603:判断该目标字符对应的附加控制属性是否为空,若否,则执行步骤604;若是,则执行步骤605。步骤604:判断从该目标字符开始的连续字辟串是否符合对应的附加控制属性,若是,则执行步骤605;否则,执行步骤608。步骤605:从当前状态迁移至记录的下一个状态。步骤606:判断下一个状态是否为接受状态,若是,则执行步骤607;否则,返回步骤601。步骤607:返回匹配成功,结束当前流程。步骤608:乂人当前状态迁移至失效状态,返回步骤601。仍然以匹配正则表达式"(time\x20|now\t)\d{3,5}s,,为例,假设目标字符串为"time2468s",则应用上述压缩后的二维结构表3进行匹配的过牙呈i口下从初始状态O开始,读入目标字符串的第一个字符为"t",则根据表3查找"t"对应的下一个状态为1,记录状态1,同时查询状态0时的附加控制属性为"0,F(t:ime\x20,n:ow\t),,,则说明对当前字符"t"有后跟字符串的要求,此时将该附加控制属性中的后跟字符串与目标字符串中字符"t,,后的等长字符串进行比较,由于上述两个字符串的比较结果相等,因此把已经记录的状态l作为当前状态。继续读取"time"后的第一个字符为"2",根据表3查找"2"对应的下一个状态为2,记录状态2,同时查询状态为1时的附加控制属性为"0,M(\d:3-5,s:3),,,则说明对数字0-9有重复3至5次的要求,此时循环读入目标字符串中字符"2"后的字符,并将计数器相应加1,由于有连续的三个字符均为数字,因此满足附加控制属性中关于最小值的要求,继续读入第4个字符"8",计数器加l后的当前值为4,此时还未超过附加控制属性中关于最大值的要求,保持当前状态不变。继续读入字符"s",根据当前状态1的附加控制属性,"s"是过渡字符,其对应的下一个状态为3,把状态3作为当前状态,查找表3中状态3对应的接受态为"1",说明对目标字符串的匹配已经完成,返回匹配成功消息。需要说明的是,上述匹配过程以匹配成功为例,当目标字符串匹配失败时,则迁移到失效状态O。与本发明基于FA的表项压缩方法的实施例相对应,本发明还提供了基于FA的表.项压缩装置的实施例。本发明表项压缩装置的第一实施例框图如图7所示,该装置包括分析单元710和合并单元720。其中,分析单元710用于分析原始二维结构表中所有状态的迁移特性;合并单元720用于将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。本发明表项压缩装置的第二实施例框图如图8所示该装置包括分析单元810、构造单元820、合并单元830和删除单元840。其中,分析单元810用于分析原始二维结构表中所有状态的迁移特性;构造单元820用于为所述原始二维结构表中的每个状态构造引用集合,所述引用集合中包含能够迁移到所述每个状态的所有状态;合并单元830用于将所述原始二维结构表中具有统一迁移特性的连续状态进行合并;删除单元840用于删除所述原始二维结构表。其中,合并单元830包括扫描单元831,用于顺序扫描所述原始二维结构表;分配单元832,用于为具有统一迁移特性的连续状态分配相同的状态索引,并为所述连续状态增加附加控制属性,所述附加控制属性中包含所述迁移特性的信息,以及为不具有统一迁移特性的状态重新分配状态索引;转换单元833,用于将所述连续状态的首状态及其对应的状态索引、附加控制属性转换到新的二维结构表,所述新的二维结构表中的状态按照所述状态索引的顺序排列,并将所述不具有统一迁移特性的状态按照所述状态索引的顺序转换到所述新的二维结构表中。与本发明基于FA的表项匹配方法的实施例相对应,本发明还提供了基于FA的表项匹配装置的实施例。本发明表项匹配装置的第一实施例框图如图9所示,该装置包括存储单元910、查找单元920和迁移单元930。其中,存储单元910用于存储压缩后的二维结构表;查找单元920用于在当前状态根据读取的目标字符查找所述二维结构表,并记录所述目标字符对应的下一个状态;迁移单元930用于判断从所述目标字符开始的连续字符串符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至所述下一个状态。本发明表项匹配装置的第二实施例框图如图10所示,该装置包括存储单元1010、查找单元1020、迁移单元1030和返回单元1040。其中,存储单元1010用于存储压缩后的二维结构表;查找单元1020用于在当前状态根据读取的目标字符查找所述二维结构表,并记录所述目标字符对应的下一个状态;迁移单元1030用于判断从所述目标字符开始的连续字符串符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至所述下一个状态;当从所述目标字符开始的连续字符串不符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至失效状态;当所述目标字符对应的附加控制属性为空时,从所述当前状态迁移至所述下一个状态;返回单元1040用于当所述下一个状态为4^收状态时,返回匹配成功。通过本发明实施例的描述可知,应用本发明表项压缩方法的实施例,通过将原二维结构表中的相似状态合并为一个状态,即压缩了正则表达式中连续字符的相似迁移状态,减少了存储结构中的由于相似状态而产生的大量冗余,节约了内存空间;相应地,当原有二维结构表中的状态个数较多时,由于通过压缩表项使得状态总数下降,因此单元格的状态索引需要的字节数也相应下降,从而降低了内存消耗。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行表项压缩时,包括如下步骤分析原始二维结构表中所有状态的迁移特性;将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。该程序在执行表项匹配时,包括如下步骤在当前状态根据读取的目标字符查找所述表项,并记录所述目标字符对应的下一个状态;判断当从所述目标字符开始的连续字符串符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至所述下一个状态。所述的存储介质,如17ROM/RAM、磁碟、光盘等。虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。权利要求1、一种基于FA的表项压缩方法,其特征在于,包括分析原始二维结构表中所有状态的迁移特性;将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。2、根据权利要求1所述的方法,其特征在于,所述分析所有状态的迁移特性后还包括为所述原始二维结构表中的每个状态构造引用集合,所述引用集合中包含能够迁移到所述每个状态的所有状态。3、根据权利要求2所述的方法,其特征在于,按照下述步骤,将具有统一迁移特性的连续状态进行合并顺序扫描所述原始二维结构表;为具有统一迁移特性的连续状态分配相同的状态索引,并为所述连续状态增加附加控制属性,所述附加控制属性中包含所述迁移特性的信息;将所述连续状态的首状态及其对应的状态索引、附加控制属性转换到新的二维结构表,所述新的二维结构表中的状态按照所述状态索引的顺序排列。4、根据权利要求3所述的方法,其特征在于,进一步包括为不具有统一迁移特性的状态重新分配状态索引;将所述状态按照所述状态索引的顺序转换到所述新的二维结构表中。5、根据权利要求4所述的方法,其特征在于,进一步包括删除所述原始二维结构表。6、根据权利要求2至5任意一项所述的方法,其特征在于,所述具有统一迁移特性的连续状态包括所述连续状态均为输入一个字符后迁移至下一个状态,且所述连续状态的引用集合中有唯一的状态;或所述连续状态均为满足输入次数的范围时迁移至下一个状态,满足所述输入范围的最小值至最大至之间的状态均迁移至同一过渡状2态,且所述连续状态的引用集合中有唯一的状态。7、根据权利要求3至5任意一-贞所述的方法,其特征在于,所述附加控制属性包括所述具有统一迁移特性的连续状态对应的字符串的首字符及后跟字符串,及所述连续状态与所述对应的字符串不符时的失效状态;或所述具有统一迁移特性的连续状态对应的当前字符集、所述字符集的最小输入个数及最大输入个数、过渡字符和过渡迁移状态、及所述连续状态与所述对应的字符串不符时的失效状态。8、一种基于FA的表项压缩装置,其特征在于,包括分析单元,用于分析原始二维结构表中所有状态的迁移特性;合并单元,用于将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。9、根据权利要求8所述的装置,其特征在于,还包括构造单元,用于为所述原始二维结构表中的每个状态构造引用集合,所述引用集合中包含能够迁移到所述每个状态的所有状态。10、根据权利要求9所述的装置,其特征在于,所述合并单元包括扫描单元,用于顺序扫描所述原始二维结构表;分配单元,用于为具有统一迁移特性的连续状态分配相同的状态索引,并为所述连续状态增加附加控制属性,所述附加控制属性中包含所述迁移特性的信息;转换单元,用于将所述连续状态的首状态及其对应的状态索引、附加控制属性转换到新的二维结构表,所述新的二维结构表中的状态按照所述状态索引的顺序排列。11、根据权利要求IO所述的装置,其特征在于,所述分配单元进一步用于,为不具有统一迁移特性的状态重新分配状态索引;所述转换单元进一步用于将所述状态按照所述状态索引的顺序转换到所述新的二维结构表中。12、根据权利要求10所述的装置,其特征在于,进一步包括删除单元,用于删除所述原始二维结构表。13、一种基于FA的表项匹配方法,其特征在于,所述表项为按照权利要求1所述的表项压缩方法生成的二维结构表,包括在当前状态根据读取的目标字符查找所述二维结构表,并记录所述目标字符对应的下一个状态;判断当从所述目标字符开始的连续字符串符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至所述下一个状态。14、根据权利要求13所述的方法,其特征在于,进一步包括当从所述目标字符开始的连续字符串不符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至失效状态。15、根据权利要求13所述的方法,其特征在于,进一步包括当所述目标字符对应的附加控制属性为空时,从所述当前状态迁移至所述下一个状态。16、根据权利要求13所述的方法,其特征在于,进一步包括当所述下一个状态为接受状态时,返回匹配成功。17、一种基于FA的表项匹配装置,其特征在于,所述表项为按照权利要求1所述的表项压缩方法生成的二维结构表,包括存储单元,用于存储所述二维结构表;查找单元,用于在当前状态根据读取的目标字符查找所述二维结构表,并记录所述目标字符对应的下一个状态;迁移单元,用于判断从所述目标字符开始的连续字符串符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至所述下一个状态。18、根据权利要求17所述的装置,其特征在于,所述迁移单元进一步用于,当从所述目标字符开始的连续字符串不符合所述目标字符对应的附加控制属性时,从所述当前状态迁移至失效状态;当所述目标字符对应的附加控制属性为空时,从所述当前状态迁移至所述下一个状态。19、根据权利要求17所述的装置,其特征在于,进一步包括返回单元,用于当所述下一个状态为接收状态时,返回匹配成功。全文摘要本发明公开了一种基于FA的表项压缩方法,包括分析原始二维结构表中所有状态的迁移特性;将所述原始二维结构表中具有统一迁移特性的连续状态进行合并。本发明还公开了一种基于FA的表项匹配方法、表项压缩装置及表项匹配装置。应用本发明表项压缩方法的实施例,通过将原二维结构表中的相似状态合并为一个状态,即压缩了正则表达式中连续字符的相似迁移状态,减少了存储结构中的由于相似状态而产生的大量冗余,节约了内存空间;相应地,当原有二维结构表中的状态个数较多时,由于通过压缩表项使得状态总数下降,因此单元格的状态索引需要的字节数也相应下降,从而降低了内存消耗。文档编号G06F17/30GK101499065SQ200810006079公开日2009年8月5日申请日期2008年2月1日优先权日2008年2月1日发明者李继军,赵玉超申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1