匹配规则包含可选字符的并行多模式匹配的方法及系统的制作方法

文档序号:6471597阅读:172来源:国知局

专利名称::匹配规则包含可选字符的并行多模式匹配的方法及系统的制作方法
技术领域
:本发明属于文本或网络内容处理
技术领域
,尤其涉及一种匹配规则包含可选字符的并行多模式匹配的方法及系统。
背景技术
:多模式匹配(MultiplePatternStringMatching)是计算机科学领域中的基本问题之一,用于快速判断某一数据块中是否包含规则集中的某一或某些规则。多模式匹配技术广泛应用于文本处理、网络内容分析、入侵检测、生物信息学、信息检索等领域。解决并行多模式匹配问题的经典方法之一,是基于有限状态自动机的方法。该方法最初由AlfredV.Aho禾卩MargaretJ".Corasick于1975年提出,通常以发明者的名字简称为AC多模式匹配算法。AC算法的突出优点在于其具有相同的最坏和平均性能,可用于处理各种模式集合(例如不等长、大规模),是一种高性能的多模式匹配方法。图1为AC算法一个具体实施例的AC自动机。规则集为用于多模式匹配的匹配规则的集合,该实施例中的规则集为(she,he,hers,hish匹配规则为she、he、hers和his。AC自动机用于进行状态转移,图1中的节点为表示状态的状态节点。根据AC算法,规则集中每个匹配规则都可以由一条从初始状态节点0出发的路径标识出来,该路径的终点为终态节点。在图l中,匹配规则she由初始状态节点0到状态节点5的路径标识出来,状态节点5为终态节点;匹配规则he由初始状态节点0到状态节点2的路径标识出来,状态节点2为终态节点;匹配规则hers由初始状态节点0到状态节点9的路径标识出来,状态节点9为终态节点;匹配规则his由初始状态节点O到状态节点7的路径标识出来,状态节点7为终态节点。对于各种确定性规则的模式匹配来说,AC算法(以及其变种)无疑是个非常优秀的算法,但却无法处理含有通配符的非确定性规则的匹配。但如果匹配规则是包含可选字符的非确定性规则,g卩,更加灵活地指明在匹配规则的某个位置有个若干个可选字符,如"334566[abx]dw4"(其中的可选字符指示符[abx]表示,在"334566"后面可以是字符'a'、'b'或'x,中的任意一个,接着才是"dw4"),则AC算法无法直接处理。
发明内容为解决上述问题,本发明提供了一种匹配规则包含可选字符的并行多模式匹配的方法及系统,从而能够应用AC算法对包含有可选字符的匹配规则进行匹配。本发明公开了一种匹配规则包含可选字符的并行多模式匹配的系统,包括匹配自动机生成模块,用于读取原始匹配规则集,将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,并将所有新匹配规则按照AC算法生成AC自动机;匹配执行模块,用于读取搜索对象,按AC算法应用所述AC自动机进行匹配搜索,判断所述搜索对象是否匹配一个所述新匹配规则,如果是,则匹配成功,输出被匹配的新匹配规则对应的原始匹配规则。所述匹配自动机生成模块进一步包括规则处理模块、AC自动机生成模块和匹配规则表生成模块,所述规则处理模块,用于进行所述将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则;并标识所有新匹配规则,建立新旧规则对应表,以记录原始匹配规则与新匹配规则之间的对应关系;所述AC自动机生成模块,用于将所述规则处理模块生成的确定匹配规则按AC算法生成一个AC自动机;所述匹配规则表生成模块,用于对所述AC自动机生成模块生成的AC自动机的每个终态节点,生成一个匹配规则表,记录该所述终态节点处匹配的所有新匹配规则标识,以供所述匹配执行模块在匹配搜索时进行查找。所述规则处理模块进一步包括原始匹配规则读入模块和确定规则生成模块,所述原始匹配规则读入模块,用于逐条读入并标识原始匹配规则,以供所述确定规则生成模块生成新旧规则对应表;所述确定规则生成模块,用于进行所述将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,标识所有所述新匹配规则,并将原始匹配规则的标识和其对应的新匹配规则的标识写入新旧规则对应表。所述匹配执行模块进一步包括新规则匹配模块,用于进行所述读取搜索对象,按AC算法应用所述AC自动机进行匹配搜索的过程;匹配输出模块,用于査找所述终态节点的匹配规则表,得到所述终态节点对应的新匹配规则的标识,査找新旧规则对应表,获得并输出所述新匹配规则对应的原始匹配规则标识。本发明还公开了一种匹配规则包含可选字符的并行多模式匹配的方法,包括步骤1,读取原始匹配规则集,将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,并将所有新匹配规则按照AC算法生成AC自动机;步骤2,读取搜索对象,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否匹配所述的一个新匹配规则,如果是,则所述匹配成功,输出被匹配的新匹配规则对应的原始匹配规则。所述步骤1进一步包括,步骤61,将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,并标识所有新匹配规则,建立新旧规则对应表;步骤62,根据所有生成的新匹配规则按AC算法生成所述AC自动机;步骤63,在生成所述AC自动机后,生成终态节点的匹配规则表,记录在所述AC自动机中的终态节点处匹配的所有新匹配规则标识,以供在搜索时进行查找。所述步骤61进一步包括,步骤71,读入并标识一条原始匹配规则;步骤72,如果该原始匹配规则包括有可选字符,则对于可选字符的每一种可选方式生成一个新的匹配规则;如果原始匹配规则是确定规则,则将所述原始匹配规则作为其自身的新匹配规则,对每个新匹配规则进行标识,并将其标识和相应的原始匹配规则标识写入新旧规则对应表。所述歩骤2进一步包括,步骤81,读取搜索对象的一个字符,按所述AC算法进行在所述AC自动机中进行状态转移,转移到一个状态节点;步骤82,判断该状态节点是否是终态节点,如果是,则查找该终态节点的匹配规则表,根据所述匹配规则表中的新匹配规则标识,查找并输出新旧规则对应表对应的原始匹配规则标识。本发明的有益效果在于,通过将含有可选字符的匹配规则转换成确定规则,使得AC算法可以用于包含可选字符的匹配规则,进而实现对含有可选字符的匹配规则的并行多模式匹配。图1是AC算法的AC自动机示意图2是本发明的系统结构示意图;图3是本发明的自动机生成模块结构示意图;图4是本发明的规则处理模块结构示意图;图5是本发明的匹配执行模块结构示意图;图6是本发明方法具体实施例的流程图。具体实施例方式下面结合附图,对本发明做进一步的详细描述。为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明系统,包括匹配自动机生成模块201和匹配执行模块202组成,如图2所示。匹配自动机生成模块201,用于读取包含原始匹配规则的原始匹配规则集,将该原始匹配规则集中的匹配规则全部转换成新匹配规则,该新匹配规则为确定规则,将所有新匹配规则按照AC算法生成AC自动机。所述确定规则,是规则中每个字符都已知,不包含不明确的字符,如通配符或可选字符的规则。匹配执行模块202,用于读取搜索对象,按AC算法应用所述AC自动机进行搜索,判断该搜索对象是否匹配一个新匹配规则,如果是,则匹配成功计算并输出匹配结果。匹配自动机生成模块201,进一步包括规则处理模块301,AC自动机生成模块302和匹配规则表生成模块303,如图3所示。所述规则处理模块301,用于进行将所述原始匹配规则集中的全部匹配规则,转换成的新匹配规则,新匹配规则为确定规则,标识所有所述新匹配规则,并将新旧规则标识写入新旧规则对应表;所述规则处理模块301,进一歩包括原始匹配规则读入模块401和确定规则生成模块402,如图4所示。所述原始匹配规则读入模块401,用于逐条读入新标识原始匹配规则,以供确定规则生成模块生成新匹配规则。所述确定规则生成模块402,用于对于每一条原始匹配规则,生成一条或多条新匹配规则,新匹配规则都是确定规则,然后标识所有所述新匹配规则,并将新旧规则标识写入新旧规则对应表。生成新匹配规则的方法为如果一个原始匹配规则中包含可选字符,则对于可选字符的每一种可选方式,生成一个新的确定规则,如果原始匹配规则本身已经是确定规则,则将其本身看成是由其生成的新确定规则。例如,一个原始匹配规则为"334566[abx]dw4",标识该原始匹配规则为23,该规则在第6个字符后包含可选字符"abx",说明第6个字符后的字符可以是a、b或x三者之一。该规则可以生成三个新确定匹配规则"334566adw4"、"334566bdw4"和"334566xdw4"。生成的三个新匹配规则的标识分别为"1","2"和"3"。又如,标识为24的规则"33[dm]66[ax]dw4"生成四个新匹配规则"33d66adw4"、"33d66xdw4"、"33m66adw4"和"33m66xdw4",它们分别被标识为"4","5","6"和"7"。再如,一个不含可选字符的原始匹配规则"323457789"标识为25,则该原始匹配规则生成的新匹配规则仍为"323457789",其新匹配规则的标识为"8"。新旧规则对应表可以用一个二维表来表示,第一列表示新匹配规则标识,第二列表示该新匹配规则对应的原始匹配规则标识。对于上述例子,形成的新旧规则对应表的局部内容为<table>tableseeoriginaldocumentpage10</column></row><table>所述AC自动机生成模块302,用于将规则处理模块生成的新匹配规则,按AC算法生成一个AC自动机。所述匹配规则表生成模块303,用于对所述AC自动机的每个终态节点生成一个匹配规则表,记录在所述该终态节点处匹配的所有新匹配规则的标识。具体实施方式为,对应于每个终态节点建立一个链表,来保存该终态节点对应的所有新匹配规则标识,如果该终态节点的链表中存在重复的新匹配规则的标识,则去掉重复的标识。匹配执行模块202进一歩包括,新规则匹配模块501和匹配输出模块502,如图5所示。新规则匹配模块501,用于应用所述AC自动机,根据读取的搜索对象的字符,按AC算法进行搜索。具体实施方式为用一个整数S表示AC自动机的当前状态,初始时S为初始状态O,每读取一个搜索对象的字符,就在AC自动机中查找,确定下一状态,并修改S值为该状态。匹配输出模块502,用于在当前状态节点为终态节点时,査找该终态节点的匹配规则表,依次获得所述匹配规则表中的新匹配规则的标识,然后査找新旧规则对应表,获得并输出原始匹配规则标识。将该终态节点对应的所有新匹配规则按上述方法处理完后,读取下一个字符,按AC算法搜索。本发明的方法的具体实施例如图6所示。步骤S601,读入并标识一条原始匹配规则。步骤S602,如果该原始匹配规则包括有可选字符,则对于可选字符的每一种可选方式生成一个新匹配规则,生成的新匹配规则为确定规则;如果原始匹配规则本身已是确定规则,则将其本身作为其生成的新匹配规则,标识所有生成的新匹配规则并将新旧规则标识写入新旧规则对应表。步骤S603,如果还有未处理的原始规则,执行歩骤S601,否则执行步骤S604。步骤S604,对所有新匹配规则,生成其相应的AC自动机,并对每个终态节点生成一个匹配规则表,记录在该节点处匹配成功的所有新匹配规则的标识,以供在搜索时进行查找,如果在一个终态节点的匹配规则表中有重复的新匹配规则标识,则去掉重复的新匹配规则标识。步骤S605,读取搜索对象,按AC算法在所述AC自动机上进行转移状态。步骤S606,判断状态节点是否为终态节点,如果是,执行歩骤S607,否则,执行步骤S605。步骤S607,查找节点的匹配规则表,获得一个新匹配规则的标识,并査找新旧规则对应表,获得并输出对应的原始匹配规则标识。步骤S608,判断该终态节点的匹配规则表中是否还有未处理的新匹配规则标识,如果有,执行步骤S607,否则,执行步骤S605。执行上述流程,直到搜索对象被读取完为止。本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。权利要求1.一种匹配规则包含可选字符的并行多模式匹配的系统,其特征在于,包括匹配自动机生成模块,用于读取原始匹配规则集,将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,并将所有新匹配规则按照AC算法生成AC自动机;匹配执行模块,用于读取搜索对象,按AC算法应用所述AC自动机进行匹配搜索,判断所述搜索对象是否匹配一个所述新匹配规则,如果是,则匹配成功,输出被匹配的新匹配规则对应的原始匹配规则。2.如权利要求1所述的匹配规则包含可选字符的并行多模式匹配的系统,其特征在于,所述匹配自动机生成模块进一步包括规则处理模块、AC自动机生成模块和匹配规则表生成模块,所述规则处理模块,用于进行所述将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则;并标识所有新匹配规则,建立新旧规则对应表,以记录原始匹配规则与新匹配规则之间的对应关系;所述AC自动机生成模块,用于将所述规则处理模块生成的确定匹配规则按AC算法生成一个AC自动机;所述匹配规则表生成模块,用于对所述AC自动机生成模块生成的AC自动机的每个终态节点,生成一个匹配规则表,记录该所述终态节点处匹配的所有新匹配规则标识,以供所述匹配执行模块在匹配搜索时进行査找。3.如权利要求2所述的匹配规则包含可选字符的并行多模式匹配的系统,其特征在于,所述规则处理模块进一步包括原始匹配规则读入模块和确定规则生成模块,所述原始匹配规则读入模块,用于逐条读入并标识原始匹配规则,以供所述确定规则生成模块生成新旧规则对应表;所述确定规则生成模块,用于进行所述将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,标识所有所述新匹配规则,并将原始匹配规则的标识和其对应的新匹配规则的标识写入新旧规则对应表。4.如权利要求2所述的匹配规则包含可选字符的并行多模式匹配的系统,其特征在于,所述匹配执行模块进一步包括新规则匹配模块,用于进行所述读取搜索对象,按AC算法应用所述AC自动机进行匹配搜索的过程;匹配输出模块,用于査找所述终态节点的匹配规则表,得到所述终态节点对应的新匹配规则的标识,查找新旧规则对应表,获得并输出所述新匹配规则对应的原始匹配规则标识。5.—种匹配规则包含可选字符的并行多模式匹配的方法,其特征在于,包括步骤1,读取原始匹配规则集,将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,并将所有新匹配规则按照AC算法生成AC自动机;步骤2,读取搜索对象,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否匹配所述的一个新匹配规则,如果是,则所述匹配成功,输出被匹配的新匹配规则对应的原始匹配规则。6.如权利要求5所述的匹配规则包含可选字符的并行多模式匹配的方法,其特征在于,所述步骤l进一步包括,步骤61,将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,并标识所有新匹配规则,建立新旧规则对应表;歩骤62,根据所有生成的新匹配规则按AC算法生成所述AC自动机;歩骤63,在生成所述AC自动机后,生成终态节点的匹配规则表,记录在所述AC自动机中的终态节点处匹配的所有新匹配规则标识,以供在搜索时进行査找。7.如权利要求6所述的匹配规则包含可选字符的并行多模式匹配的方法,其特征在于,所述步骤61进一歩包括,步骤71,读入并标识一条原始匹配规则;步骤72,如果该原始匹配规则包括有可选字符,则对于可选字符的每一种可选方式生成一个新的匹配规则;如果原始匹配规则是确定规则,则将所述原始匹配规则作为其自身的新匹配规则,对每个新匹配规则进行标识,并将其标识和相应的原始匹配规则标识写入新旧规则对应表。8.如权利要求6所述的匹配规则包含可选字符的并行多模式匹配的方法,其特征在于,所述步骤2进一歩包括,步骤81,读取搜索对象的一个字符,按所述AC算法进行在所述AC自动机中进行状态转移,转移到一个状态节点;步骤82,判断该状态节点是否是终态节点,如果是,则査找该终态节点的匹配规则表,根据所述匹配规则表中的新匹配规则标识,査找并输出新旧规则对应表对应的原始匹配规则标识。全文摘要本发明涉及一种匹配规则包含可选字符的并行多模式匹配的系统和方法,系统包括匹配自动机生成模块,用于读取原始匹配规则集,将所述原始匹配规则集中包含可选字符的原始匹配规则对应所述可选字符的每一种可选方式生成一个新匹配规则,将不包含可选字符的确定的原始匹配规则作为其对应的新匹配规则,并将所有新匹配规则按照AC算法生成AC自动机;匹配执行模块,用于读取搜索对象,按AC算法应用所述AC自动机进行匹配搜索,判断所述搜索对象是否匹配一个所述新匹配规则,如果是,则匹配成功,输出被匹配的新匹配规则对应的原始匹配规则。本发明能够应用AC算法对包含有可选字符的匹配规则进行匹配。文档编号G06F17/30GK101441664SQ20081023920公开日2009年5月27日申请日期2008年12月3日优先权日2008年12月3日发明者叶润国,王雷章,胡振宇,炜邓申请人:北京启明星辰信息技术股份有限公司;北京启明星辰信息安全技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1