CN101286988B - 一种并行多模式匹配的方法及系统 - Google Patents

一种并行多模式匹配的方法及系统 Download PDF

Info

Publication number
CN101286988B
CN101286988B CN2008101044162A CN200810104416A CN101286988B CN 101286988 B CN101286988 B CN 101286988B CN 2008101044162 A CN2008101044162 A CN 2008101044162A CN 200810104416 A CN200810104416 A CN 200810104416A CN 101286988 B CN101286988 B CN 101286988B
Authority
CN
China
Prior art keywords
rule
sub
matched
module
matching
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008101044162A
Other languages
English (en)
Other versions
CN101286988A (zh
Inventor
胡振宇
叶润国
许金鹏
李博
王洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Venus Information Technology Co Ltd
Original Assignee
Beijing Venus Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Venus Information Technology Co Ltd filed Critical Beijing Venus Information Technology Co Ltd
Priority to CN2008101044162A priority Critical patent/CN101286988B/zh
Publication of CN101286988A publication Critical patent/CN101286988A/zh
Application granted granted Critical
Publication of CN101286988B publication Critical patent/CN101286988B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种并行多模式匹配的方法和系统,所述系统包括:生成模块,用于读取包含匹配规则的规则集,将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述子规则中不包含通配符,所述规则集中不包含通配符的匹配规则作为其自身的子规则,并将所有子规则按照AC算法生成AC自动机,并输出所述AC自动机;匹配模块,用于读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。从而既保留AC算法的高效性,又可以匹配含有通配符的非确定性规则。

Description

一种并行多模式匹配的方法及系统
技术领域
本发明属于文本或网络内容处理技术领域,尤其涉及一种并行多模式匹配方法及系统。
背景技术
多模式匹配(Multiple Pattern String Matching)是计算机科学领域中的基本问题之一,用于快速判断某一数据块中是否包含规则集中的某一或某些规则。多模式匹配技术广泛应用于文本处理、网络内容分析、入侵检测、生物信息学、信息检索等领域。
解决并行多模式匹配问题的经典方法之一,是基于有限状态自动机的方法。该方法最初由Alfred V.Aho和Margaret J.Corasick于1975年提出,通常以发明者的名字简称为AC多模式匹配算法。AC算法的突出优点在于其具有相同的最坏和平均性能,可用于处理各种模式集合(例如:不等长、大规模),是一种高性能的多模式匹配方法。
图1为AC算法一个具体实施例的AC自动机。规则集为用于多模式匹配的匹配规则的集合,该实施例中的规则集为{she,he,hers,his},匹配规则为she、he、hers和his。AC自动机用于进行状态转移,图1中的节点为表示状态的状态节点。根据AC算法,规则集中每个匹配规则都可以由一条从初始状态节点0出发的路径标识出来,该路径的终点为终态节点。在图1中,匹配规则she由初始状态节点0到状态节点5的路径标识出来,状态节点5为终态节点;匹配规则he由初始状态节点0到状态节点2的路径标识出来,状态节点2为终态节点;匹配规则hers由初始状态节点0到状态节点9的路径标识出来,状态节点9为终态节点;匹配规则his由初始状态节点0到状态节点7的路径标识出来,状态节点7为终态节点。
对于各种确定性规则的模式匹配来说,AC算法(以及其变种)无疑是个非常优秀的算法,但却无法处理含有通配符的非确定性规则的匹配。
发明内容
为解决上述问题,本发明提供了一种并行多模式匹配的方法及系统,应用AC算法来处理含有通配符的非确定规则的并行多模式匹配。
本发明公开了一种并行多模式匹配的系统,包括:
生成模块,用于读取包含匹配规则的规则集,将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述子规则中不包含通配符,所述规则集中不包含通配符的匹配规则作为其自身的子规则,并将所有子规则按照AC算法生成AC自动机,并输出所述AC自动机;
匹配模块,用于读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
所述生成模块进一步包括:
规则读取模块,用于进行所述读取包含匹配规则的规则集的过程;
自动机生成模块,用于进行所述将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述规则集中不包含通配符的匹配规则作为其自身的子规则,并将所有子规则按照AC算法生成AC自动机的过程;
输出模块,用于进行所述输出所述AC自动机的过程。
所述匹配模块进一步包括:
读取模块,用于进行所述读取搜索对象和所述AC自动机的过程;
搜索模块,用于进行所述按AC算法应用所述AC自动机进行搜索并判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则的过程;
匹配输出模块,用于进行所述输出匹配结果的过程。
所述自动机生成模块进一步包括规则解析模块、匹配状态表生成模块、AC状态创建模块和节点处理模块,
所述规则解析模块,包括解析模块和标识模块,所述解析模块用于进行所述将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述规则集中不包含通配符的匹配规则作为其自身的子规则的过程,所述标识模块用于标识匹配规则,并使用所述子规则所属匹配规则的标识和所述子规则在匹配规则中的顺序号标识所述子规则;
所述AC状态创建模块,用于进行所述按照AC算法生成AC自动机的过程;
所述节点处理模块,用于生成节点规则表,以记录在所述AC自动机中的状态节点处匹配的所有子规则标识,以供所述搜索模块在搜索时进行查找,并获得当前状态节点处匹配的子规则标识;
所述匹配状态表生成模块,用于生成匹配状态表,所述匹配状态表中的一行对应于所述规则集中的一个匹配规则,每行记录对应匹配规则包含的子规则总数和最近匹配的子规则的顺序号,以供所述搜索模块在获得所述匹配的子规则标识后,依据所述匹配的子规则标识进行查找并更新所述匹配状态表;
所述输出模块,还用于输出所述匹配状态表。
所述搜索模块进一步包括状态转移模块和处理模块,
所述状态转移模块,用于按AC算法应用所述AC自动机搜索所述搜索对象,进行状态转移;
所述处理模块,用于查找所述节点规则表以获得当前状态节点匹配的子规则标识,按所述子规则标识查找所述匹配状态表,获得所述子规则所属匹配规则的子规则总数和最近匹配的子规则顺序号,比较所述子规则顺序号和所述最近匹配的子规则顺序号,如果所述子规则顺序号比所述最近匹配的子规则顺序号大于1,则根据所述子规则顺序号和所述子规则总数判断所述子规则是否是最后一个子规则,如果是,则所述搜索对象同所述匹配规则匹配,如果不是,则更新匹配状态表中所述最近匹配子规则顺序号为所述子规则的顺序号。
本发明还公开了一种并行多模式匹配的方法,包括:
步骤1,读取包含匹配规则的规则集,将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述子规则中不包含通配符,所述规则集中不包含通配符的匹配规则作为其自身的子规则,并将所有子规则按照AC算法生成AC自动机,并输出所述AC自动机;
步骤2,读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
所述步骤1进一步包括,
步骤71,标识所述规则集的匹配规则,并在确定所述匹配规则的子规则后,使用所述子规则所属匹配规则的标识和所述子规则在匹配规则中的顺序号标识所述子规则;
步骤72,在生成所述AC自动机后,生成节点规则表,记录在所述AC自动机中的状态节点处匹配的所有子规则标识,以供在搜索时进行查找,并获得当前状态节点处匹配的子规则标识;
步骤73,生成匹配状态表,所述匹配状态表中的一行对应于所述规则集中的一个匹配规则,每行记录对应匹配规则包含的子规则总数和最近匹配的子规则的顺序号,以供在搜索时获得所述匹配的子规则标识后,依据所述匹配的子规则标识进行查找并更新所述匹配状态表;
步骤74,输出所述匹配状态表。
所述步骤2进一步包括,
步骤81,按AC算法应用所述AC自动机搜索所述搜索对象,进行状态转移;
步骤82,查找所述节点规则表以获得匹配的子规则标识,查找匹配状态表,获得所述子规则所属匹配规则的子规则总数和最近匹配的子规则顺序号;
步骤83,判断所述子规则顺序号是否比所述最近匹配的子规则顺序号大于1,如果大于1,则执行步骤84;
步骤84,根据所述子规则顺序号和所述子规则总数判断所述子规则是否是最后一个子规则,如果是,则所述搜索对象同所述匹配规则匹配,如果不是,则更新匹配状态表中所述最近匹配子规则顺序号为所述子规则的顺序号。
本发明的有益效果在于,克服了AC算法不能处理含有通配符的非确定性规则的匹配问题,既保留了AC算法的高效性,又可以匹配含有通配符的非确定性规则。
附图说明
图1是AC算法的AC自动机示意图;
图2是本发明的系统结构示意图;
图3是本发明的方法流程图;
图4是本发明的生成模块结构示意图;
图5是本发明的自动机生成模块结构示意图;
图6是本发明的匹配模块结构示意图;
图7是本发明的搜索模块结构示意图;
图8是本发明方法具体实施例的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明系统2,包括生成模块201和匹配模块202组成,如图2所示。
生成模块201,用于读取包含通配符的匹配规则的规则集,将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述子规则中不包含通配符,所述规则集中不包含通配符的匹配规则作为其自身的子规则,将规则集中匹配规则用该匹配规则的子规则替换,从而使替换后的规则集中不包含通配符,按照AC算法生成对应于替换后的规则集的AC自动机,并输出所述AC自动机,对于不包含通配符的匹配规则,由于其子规则是其自身,所以规则集中不包含通配符的匹配规则可以不做替换直接保留;
匹配模块202,用于读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
本发明的方法如图3所示,包括:
步骤S301,读取包含通配符的匹配规则的规则集,将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述子规则中不包含通配符,所述规则集中不包含通配符的匹配规则作为其自身的子规则,将规则集中匹配规则用该匹配规则的子规则替换,从而使替换后的规则集中不包含通配符,按照AC算法生成对应于替换后的规则集的AC自动机,并输出所述AC自动机,对于不包含通配符的匹配规则,由于其子规则是其自身,所以规则集中不包含通配符的匹配规则可以不做替换直接保留。
步骤S302,读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
生成模块201包括,规则读取模块401、自动机生成模块402和输出模块403,如图4所示。
规则读取模块401,用以逐条读去规则集中的匹配规则,并发送给自动机生成模块402。如果匹配规则是保存在文件中,则进一步用于在逐行读取匹配规则前打开文件。
自动机生成模块402,用以判断规则集中各个匹配规则是否包含通配符,如果包含,则从通配符处将匹配规则分割成所述匹配规则的子规则,所述子规则中不包含通配符,如果不包含,则所述匹配规则作为其自身的子规则,将规则集中匹配规则用该匹配规则的子规则替换,从而使替换后的规则集中不包含通配符,按照AC算法生成匹配转换后的规则集的AC自动机,并生成匹配状态表和节点规则表,匹配状态表用以记录匹配规则的匹配状态,节点规则集用以记录在所述AC自动机的终态节点处匹配的所有子规则,并将AC自动机和匹配状态表发送给输出模块403。
输出模块403,用以输出AC自动机和匹配状态表。
自动机生成模块402包括,规则解析模块501、匹配状态表生成模块502、AC状态创建模块503和节点处理模块504,如图5所示。
规则解析模块501,包括解析模块510和标识模块511。
解析模块510,用于逐条判断规则集中的匹配规则是否包含通配符,如果包含,则查找匹配规则中通配符的位置,在通配符位置处将匹配规则分割为不包含通配符的子规则,如果不包含,则所述匹配规则作为其自身的子规则,将规则集中的匹配规则用该匹配规则的子规则替换,使规则集转换为不包含通配符的规则集。
标识模块511,用于标识匹配规则,并使用子规则所属匹配规则的标识和子规则在所属匹配规则中的顺序号标识子规则;
例如,一个匹配规则“334566*990000”,标识该匹配规则为23,该规则包含一个通配符“*”,被分割为两个子规则“334566”和“990000”,子规则的顺序号分别是1和2。采用二维数组将两个子规则分别标识为(23,1)和(23,2)。又如,一个不含通配符的匹配规则“323457789”标识为24,则该匹配规则的子规则标识为(24,1)。
匹配状态表生成模块502,用于生成匹配状态表,所述匹配状态表中的一行对应于所述规则集中的一个匹配规则,每行记录对应匹配规则包含的子规则总数和最近匹配的子规则的顺序号,以供所述搜索模块602在获得所述匹配的子规则标识后,依据所述匹配的子规则标识进行查找并更新所述匹配状态表。
例如,规则集中有N个匹配规则,建立一个N×2的二维表格,其中行号表示匹配规则的标识,第1列表示该匹配规则包含的子规则总数,第2列表示最近匹配的子规则的顺序号,并且每个匹配规则的最近匹配的子规则的顺序号初始化为0。
AC状态创建模块503,用于对应于转换后的规则集,按AC算法生成AC自动机。
节点处理模块504,用于生成节点规则表,记录在所述AC自动机中的终态节点处匹配的所有子规则,搜索模块602在搜索时进行查找,并获得当前终态节点处匹配的子规则标识。
具体实施方式为,对应于每个终态节点建立一个链表,链表中存有该终态节点对应的子规则标识。其中的子规则标识为所述的二维数组,例如(23,2),表示第23条匹配规则的第2个子规则以该状态节点为终态节点。
匹配模块202包括,读取模块601、搜索模块602和匹配输出模块603,如图6所示。
读取模块601,用于读取搜索对象、AC自动机和匹配状态表,并将其发送给搜索模块602。
搜索模块602,用于按AC算法应用AC自动机对搜索对象进行搜索,判断搜索对象是否按子规则在匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则匹配所述匹配规则。
匹配输出模块603,用于输出匹配结果,例如输出匹配成功的匹配规则的标识。
搜索模块602包括,状态转移模块701和处理模块702,如图7所示。
状态转移模块701,用于应用AC自动机,根据读取的搜索对象的字符,按AC算法进行状态转移。具体实施方式为,用一个整数S表示AC自动机的当前状态,初始时S为初始状态0,每读取一个搜索对象的字符,就在AC自动机中查找,确定下一状态,并修改S值为该状态。
处理模块702,用于在当前状态节点为终态节点时,查找所述节点规则表以获得当前终态节点匹配的子规则标识,按所述子规则标识查找所述匹配状态表,获得所述子规则所属匹配规则的子规则总数和最近匹配的子规则顺序号,比较所述子规则顺序号和所述最近匹配的子规则顺序号,如果所述子规则顺序号比所述最近匹配的子规则顺序号大于1,则根据所述子规则顺序号和所述子规则总数判断所述子规则是否是最后一个子规则,如果是,则所述搜索对象同所述匹配规则匹配,如果不是,则更新匹配状态表中所述最近匹配子规则顺序号为所述子规则的顺序号。
具体实施方式如下。
在当前终态节点的链表中逐一查找每个子规则,对于每个子规则,根据其标识确定其所属的匹配规则,在匹配状态表中查找该匹配规则的子规则总数和最近匹配的子规则;
判断链表中查找的子规则的顺序号是否比匹配状态表中最近匹配子规则的顺序号大1,如果是,则根据子规则总数判断该子规则是否是最后一个子规则,如果是最后一个子规则,则搜索对象匹配该子规则所属的匹配规则,输出该匹配规则;如果不是最后一个子规则,并且链表中查找的子规则的顺序号比匹配状态表中最近匹配子规则的顺序号大1,则更新匹配状态表中记录的最近匹配子规则为该子规则的顺序号。
将该终态节点对应的所有子规则按上述方法处理完后,读取下一个字符,按AC算法搜索。
本发明的方法的具体实施例如图8所示。
步骤S801,读取规则集。
步骤S802,标识所述规则集的匹配规则,判断规则集的匹配规则中是否包含通配符,如果包含,在通配符处将匹配规则划分为不包含通配符的子规则,如果不包含,则所述匹配规则作为其自身的子规则,然后将所有子规则按AC算法生成AC自动机,并生成节点规则表和匹配状态表。
节点规则表,记录在所述AC自动机中的终态节点处匹配的所有子规则,子规则用其所属匹配规则的标识和该子规则在匹配规则中的顺序号标识。
匹配状态表中的每一行对应于一个匹配规则,记录该匹配规则的最近匹配的子规则的顺序号和子规则总数,每个匹配规则的最近匹配的子规则的顺序号初始化为0。
步骤S803,读取搜索对象。
步骤S804,按AC算法转移状态。
步骤S805,判断状态节点是否为终态节点,如果是,执行步骤S806,否则,执行步骤S803。
步骤S806,查找节点规则表,获得该终态节点匹配的子规则的标识。
步骤S807,按子规则标识中的所属匹配规则的标识查找匹配状态表,判断该子规则的顺序号是否比所属匹配规则对应的最近匹配的子规则的顺序号大1,如果是,执行步骤S808,否则执行步骤S810。
步骤S808,同所属匹配规则的子规则总数比较,判断该子规则是否是最后一个子规则,如果是,输出匹配结果,执行步骤S810,否则,执行步骤S809。
步骤S809,更新匹配状态表中匹配规则对应的最近匹配的子规则的顺序号为该子规则的顺序号。
步骤S810,判断该终态节点处是否还有匹配的子规则,如果有,执行步骤S806,否则,执行步骤S803。
执行上述流程,直到搜索对象被读取完为止。

Claims (8)

1.一种并行多模式匹配的系统,其特征在于,包括:
生成模块,用于读取包含匹配规则的规则集,将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述子规则中不包含通配符,所述规则集中不包含通配符的匹配规则作为其自身的子规则,并将所有子规则按照AC算法生成AC自动机,并输出所述AC自动机;
匹配模块,用于读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
2.如权利要求1所述的并行多模式匹配的系统,其特征在于,所述生成模块进一步包括:
规则读取模块,用于进行所述读取包含匹配规则的规则集的过程;
自动机生成模块,用于进行所述将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述规则集中不包含通配符的匹配规则作为其自身的子规则,并将所有子规则按照AC算法生成AC自动机的过程;
输出模块,用于进行所述输出所述AC自动机的过程。
3.如权利要求2所述的并行多模式匹配的系统,其特征在于,所述匹配模块进一步包括:
读取模块,用于进行所述读取搜索对象和所述AC自动机的过程;
搜索模块,用于进行所述按AC算法应用所述AC自动机进行搜索并判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则的过程;
匹配输出模块,用于进行所述输出匹配结果的过程。
4.如权利要求3所述的并行多模式匹配的系统,其特征在于,所述自动机生成模块进一步包括规则解析模块、匹配状态表生成模块、AC状态创建模块和节点处理模块,
所述规则解析模块,包括解析模块和标识模块,所述解析模块用于进行所述将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述规则集中不包含通配符的匹配规则作为其自身的子规则的过程,所述标识模块用于标识匹配规则,并使用所述子规则所属匹配规则的标识和所述子规则在匹配规则中的顺序号标识所述子规则;
所述AC状态创建模块,用于进行所述按照AC算法生成AC自动机的过程;
所述节点处理模块,用于生成节点规则表,以记录在所述AC自动机中的状态节点处匹配的所有子规则标识,以供所述搜索模块在搜索时进行查找,并获得当前状态节点处匹配的子规则标识;
所述匹配状态表生成模块,用于生成匹配状态表,所述匹配状态表中的一行对应于所述规则集中的一个匹配规则,每行记录对应匹配规则包含的子规则总数和最近匹配的子规则的顺序号,以供所述搜索模块在获得所述匹配的子规则标识后,依据所述匹配的子规则标识进行查找并更新所述匹配状态表;
所述输出模块,还用于输出所述匹配状态表。
5.如权利要求4所述的并行多模式匹配的系统,其特征在于,所述搜索模块进一步包括状态转移模块和处理模块,
所述状态转移模块,用于按AC算法应用所述AC自动机搜索所述搜索对象,进行状态转移;
所述处理模块,用于在状态节点为终态节点时,查找所述节点规则表以获得当前终态节点匹配的子规则的标识,按查找到的子规则的标识查找所述匹配状态表,获得所述终态节点匹配的子规则所属匹配规则的子规则总数和最近匹配的子规则的顺序号,比较所述终态节点匹配的子规则的顺序号和所述最近匹配的子规则的顺序号,如果所述子规则的顺序号比所述最近匹配的子规则的顺序号大于1,则根据所述终态节点匹配的子规则的顺序号和所述子规则总数判断所述子规则是否是最后一个子规则,如果是,则所述搜索对象同所述匹配规则匹配,如果不是,则更新匹配状态表中所述最近匹配子规则的顺序号为所述终态节点匹配的子规则的顺序号。
6.一种并行多模式匹配的方法,其特征在于,包括:
步骤1,读取包含匹配规则的规则集,将所述规则集中包含通配符的匹配规则从通配符处分割成所述匹配规则的子规则,所述子规则中不包含通配符,所述规则集中不包含通配符的匹配规则作为其自身的子规则,并将所有子规则按照AC算法生成AC自动机,并输出所述AC自动机;
步骤2,读取搜索对象和所述AC自动机,按AC算法应用所述AC自动机进行搜索,判断所述搜索对象是否按子规则在所述匹配规则中的顺序匹配所述匹配规则的所有子规则,如果是,则所述搜索对象匹配所述匹配规则,并输出匹配结果。
7.如权利要求6所述的并行多模式匹配的方法,其特征在于,所述步骤1进一步包括,
步骤71,标识所述规则集的匹配规则,并在确定所述匹配规则的子规则后,使用所述子规则所属匹配规则的标识和所述子规则在匹配规则中的顺序号标识所述子规则;
步骤72,在生成所述AC自动机后,生成节点规则表,记录在所述AC自动机中的状态节点处匹配的所有子规则标识,以供在搜索时进行查找,并获得当前状态节点处匹配的子规则标识;
步骤73,生成匹配状态表,所述匹配状态表中的一行对应于所述规则集中的一个匹配规则,每行记录对应匹配规则包含的子规则总数和最近匹配的子规则的顺序号,以供在搜索时获得所述匹配的子规则标识后,依据所述匹配的子规则标识进行查找并更新所述匹配状态表;
步骤74,输出所述匹配状态表。
8.如权利要求7所述的并行多模式匹配的方法,其特征在于,所述步骤2进一步包括,
步骤81,按AC算法应用所述AC自动机搜索所述搜索对象,进行状态转移;
步骤82,在状态节点为终态节点时,查找所述节点规则表以获得匹配的子规则标识,查找匹配状态表,获得所述终态节点匹配的子规则所属匹配规则的子规则总数和最近匹配的子规则的顺序号;
步骤83,判断所述终态节点匹配的子规则的顺序号是否比所述最近匹配的子规则的顺序号大于1,如果大于1,则执行步骤84;
步骤84,根据所述终态节点匹配的子规则的顺序号和所述子规则总数判断所述终态节点匹配的子规则是否是最后一个子规则,如果是,则所述搜索对象同所述匹配规则匹配,如果不是,则更新匹配状态表中所述最近匹配子规则的顺序号为所述终态节点匹配的子规则的顺序号。
CN2008101044162A 2008-04-18 2008-04-18 一种并行多模式匹配的方法及系统 Expired - Fee Related CN101286988B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101044162A CN101286988B (zh) 2008-04-18 2008-04-18 一种并行多模式匹配的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101044162A CN101286988B (zh) 2008-04-18 2008-04-18 一种并行多模式匹配的方法及系统

Publications (2)

Publication Number Publication Date
CN101286988A CN101286988A (zh) 2008-10-15
CN101286988B true CN101286988B (zh) 2011-05-04

Family

ID=40058955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101044162A Expired - Fee Related CN101286988B (zh) 2008-04-18 2008-04-18 一种并行多模式匹配的方法及系统

Country Status (1)

Country Link
CN (1) CN101286988B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101442540B (zh) * 2008-12-30 2012-09-05 合肥昊特信息科技有限公司 基于现场可编程门阵列的高速模式匹配算法
CN101556619B (zh) * 2009-05-04 2010-11-10 成都市华为赛门铁克科技有限公司 节点压缩方法及装置、以及多模匹配方法及装置
CN102799996A (zh) * 2012-06-25 2012-11-28 亿赞普(北京)科技有限公司 网络广告策略匹配方法及系统
US9183659B2 (en) * 2013-03-15 2015-11-10 Dreamworks Animation Llc Search-based matching for multiple parameter sets
CN104714951A (zh) * 2013-12-13 2015-06-17 世纪禾光科技发展(北京)有限公司 一种并行多模式匹配的方法及系统
CN106933798B (zh) * 2015-12-31 2020-09-08 北京城市网邻信息技术有限公司 信息分析的方法及装置
CN105843882A (zh) * 2016-03-21 2016-08-10 乐视网信息技术(北京)股份有限公司 一种信息匹配方法及装置
CN107291761A (zh) * 2016-04-05 2017-10-24 北京优朋普乐科技有限公司 一种正则表达式的匹配方法和装置
CN106067039B (zh) * 2016-05-30 2019-01-29 桂林电子科技大学 基于决策树剪枝的模式匹配方法
CN108881036B (zh) * 2018-07-03 2020-06-16 电信科学技术第五研究所有限公司 一种基于查表运算的网络通信快速匹配方法及设备
CN110222143B (zh) * 2019-05-31 2022-11-04 北京小米移动软件有限公司 字符串匹配方法,装置,存储介质及电子设备
CN112579733B (zh) * 2019-09-30 2023-10-20 华为技术有限公司 规则匹配方法、规则匹配装置、存储介质及电子设备
CN112506789B (zh) * 2020-12-17 2022-08-02 中国科学院计算技术研究所 一种用于数据包检测的并行模式匹配方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477559A (zh) * 2002-08-23 2004-02-25 华为技术有限公司 一种实现长字符串前缀匹配的方法
CN101154228A (zh) * 2006-09-27 2008-04-02 西门子公司 一种分段模式匹配方法及其装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1477559A (zh) * 2002-08-23 2004-02-25 华为技术有限公司 一种实现长字符串前缀匹配的方法
CN101154228A (zh) * 2006-09-27 2008-04-02 西门子公司 一种分段模式匹配方法及其装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谭强等.一种快速字符串匹配搜索算法.《计算机应用》.2003,第23卷202-204. *

Also Published As

Publication number Publication date
CN101286988A (zh) 2008-10-15

Similar Documents

Publication Publication Date Title
CN101286988B (zh) 一种并行多模式匹配的方法及系统
TWI417748B (zh) 用於擴充一查詢之方法及電腦可讀取儲存媒體
CN102647414B (zh) 协议解析方法、设备及系统
TW200900958A (en) Link spam detection using smooth classification function
SaiKrishna et al. String matching and its applications in diversified fields
CN1584884B (zh) 检索结构化文档的数据的设备
JP5796494B2 (ja) 情報処理装置、情報処理方法、及びプログラム
CN101620608A (zh) 信息采集方法及系统
CN113962293B (zh) 一种基于LightGBM分类与表示学习的姓名消歧方法和系统
US20170109358A1 (en) Method and system of determining enterprise content specific taxonomies and surrogate tags
US20050050086A1 (en) Apparatus and method for multimedia object retrieval
CN101388044A (zh) 匹配规则包含或运算符的并行多模式匹配的方法及系统
Wang et al. Time-variant graph classification
CN101377816B (zh) 匹配规则包含位移指示符的并行多模式匹配的方法及系统
CN113360803A (zh) 基于用户行为的数据缓存方法、装置、设备及存储介质
CN101677318B (zh) 匹配规则包含次数指示符的并行多模式匹配的方法及系统
CN110263021B (zh) 一种基于个性化标签体系的主题库生成方法
Jin et al. Filtering spam in Weibo using ensemble imbalanced classification and knowledge expansion
CN101441664A (zh) 匹配规则包含可选字符的并行多模式匹配的方法及系统
CN112632282A (zh) 一种中英文论文数据分类与查询方法
Gharibshah et al. Extracting actionable information from Security Forums
Mihăilă et al. What causes a causal relation? detecting causal triggers in biomedical scientific discourse
CN116055123B (zh) 一种mqtt主题匹配方法、装置、计算设备及存储介质
Wang et al. Towards a novel protocol analysis framework for industrial control systems
CN114549880B (zh) 获取标识信息的方法、装置和电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110504

Termination date: 20170418

CF01 Termination of patent right due to non-payment of annual fee