CN102609450B - 一种按字长匹配的多模式串匹配方法 - Google Patents
一种按字长匹配的多模式串匹配方法 Download PDFInfo
- Publication number
- CN102609450B CN102609450B CN201210006598.6A CN201210006598A CN102609450B CN 102609450 B CN102609450 B CN 102609450B CN 201210006598 A CN201210006598 A CN 201210006598A CN 102609450 B CN102609450 B CN 102609450B
- Authority
- CN
- China
- Prior art keywords
- cryptographic hash
- character
- character block
- pattern string
- hash
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000008878 coupling Effects 0.000 claims description 11
- 238000010168 coupling process Methods 0.000 claims description 11
- 238000005859 coupling reaction Methods 0.000 claims description 11
- 238000006073 displacement reaction Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种按字长匹配的多模式匹配方法,包括预编译过程和搜索过程,预编译过程构造3个表:跳转表即SHIFT表、哈希表即HASH表和前缀表即PREFIX表;特征是在搜索过程中按字长读取文本,每次从文本中装载一个整型值,每次读入和处理的单位变为一个机器字,这样就平滑了在最短模式串长度过小时跳跃距离过小的劣势,同时整型值中包含的三个字符块的哈希值可以通过对该整型值的移位获得,不需要进行逐个取值和做或运算,从而加快了哈希值的计算速度;每次读取一个机器字也使访存次数有效减少,提高了访存效率。采用本发明方法可使多模式串的匹配达到比较高的效率。
Description
技术领域
本发明属于计算机中字符串匹配技术领域,具体涉及按字长匹配的多模式串匹配方法。
背景技术
多模式串匹配方法现已被广泛的用于信息检索、网络内容过滤、病毒检测和生物计算学等方面。所谓多模式串匹配,就是从文本中搜索出模式串集合中所有模式串的所有出现的位置。经典的多模式匹配方法有基于前缀的匹配防范,基于后缀的匹配方法和基于子串的匹配方法。其中基于后缀的匹配方法,如1994年美国亚利桑那大学计算机学院报告《一种快速的多模式串匹配算法》中提出的Wu-Manber方法(报告编号为TR-94-17),是目前实际中平均性能最好的一个方法,被应用于操作系统的搜索程序和入侵检测系统中。该Wu-Manber方法采用哈希散列和跳跃式搜索的方式,具有很好的匹配效率,但Wu-Manber方法在模式集中最短模式串长度过小时,搜索时平均跳跃距离变小,需要频繁的计算哈希值,验证入口增多,匹配效率会严重下降。
发明内容
本发明提出一种按字长匹配的多模式串匹配方法,以克服现有技术的上述缺陷,使多模式串匹配达到比较高的效率。
本发明按字长匹配的多模式串匹配方法,包括预编译过程和搜索过程,在字长为32位的计算机上进行如下操作:
所述预编译过程和传统的Wu-Manber方法相同,为构造3个表:一个跳转表即SHIFT表,一个哈希表即HASH表,一个前缀表即PREFIX表;设B为字符块的长度,m为最短模式串的长度,X为当前需要计算哈希值的字符块;字符块哈希值的计算公式为:
hash(X)=(X[0]*256B-1)+(X[1]*256B-2)+...+(X[B-1]*2560);
首先建立SHIFT表:先建立一个空表,表项值都初始化为最大跳转距离m-B+1,在模式集中取每个模式串前m个字符,从后往前每次取相邻B个字符组成字符块,按上面给出的字符块哈希值的计算公式计算该字符块的哈希值,按字符块跳转值的计算公式修改表中索引值为该字符块哈希值的表项值,即形成SHIFT表;
然后建立HASH表:先建立一个空表,表项值都初始化为空,在模式集中取每个模式串前m个字符的后B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成HASH表;
再建立PREFIX表:先建立一个空表,表项值初始化为空,取模式集中每个模式串前B个字符,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成PREFIX表;
其特征在于:
将所述需要计算哈希值的字符块的长度B取2,在搜索过程中,每次按字长读取文本,即每次从文本中装载一个整型值,字符块的哈希值通过对该整型值的移位得到;具体操作如下:
设当前读取机器字的内容是对应文本中的字符“abcd”,其中“abcd”四个字符均泛指任意字符,则该机器字对应三个字符块:前面字符块“ab”、中间字符块“bc”和后面字符块“cd”,机器字对应整型值为变量var,整个搜索过程分为四个阶段,用计算机语言描述如下:
第一阶段:
由计算前面字符块哈希值的公式hash("ab")=(var<<16)>>16得到前面字符块的哈希值V1,查SHIFT表得到表中索引值为前面字符块的哈希值V1的表项值:
switch(SHIFT[V1])
{
case0:查找HASH表中索引值为前面字符块的哈希值V1的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V1的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第二阶段;
case1:直接进入第二阶段;
case2,3,4:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第二阶段:
由计算中间字符块哈希值的公式hash("bc")=(var<<8)>>16得到中间字符块的哈希值V2,查SHIFT表:
switch(SHIFT[V2])
{
case0:查找HASH表中索引值为中间字符块的哈希值V2的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V2的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第三阶段;
case1,2:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第三阶段:
由计算后面字符块哈希值的公式hash("cd")=var>>16得到后面字符块的哈希值V3,查SHIFT表:
switch(SHIFT[V3])
{
case0:查找HASH表中索引值为后面字符块的哈希值V3的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V3的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
case1:直接进入第一阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第四阶段:
取下一个字长中与该字长中相邻的字符,由计算哈希值的公式计算得到相邻字长字符块的哈希值V4,查SHIFT表:
switch(SHIFT[V4])
{
case0:查找HASH表中索引值为字长字符块的哈希值V4的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V4的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
}。
概括起来说,本发明方法就是在上述搜索过程中首先计算当前字符块的哈希值,若当前字符块的跳转值为零,则将当前整型指针转为字符指针,查找HASH表和PREFIX表,验证可能的匹配情况,若不为零,则直接移动到下一个匹配入口;整个过程中搜索指针的移动距离是一个字长的整数倍,当搜索指针到达文本末尾,整个过程结束。
与现有Wu-Manber技术相比,本发明主要做了以下改进:
A.最短模式串长度过小时,平均跳跃距离增大。
本发明方法中的最大跳跃距离为m-B+1;而在现有的Wu-Manber方法中当规则集中最短模式串长度过小时,最大跳跃距离受限;本发明方法中通过按字长匹配,每次读入和处理的单位变为一个机器字,在最短模式串长度过小时,仍相当于跳跃距离为4,这样就平滑了最短模式串长度过小时跳跃距离过小的劣势。
B.哈希值的计算加速。
本发明中每次读入一个整型值,其包含的三个字符块的哈希值正好可以通过对该整型值的移位获得。仅仅通过移位即可获得所需的哈希值,而不需要进行逐个取值和做或运算,这样就加快了哈希值的计算速度,特别是当最短模式串长度过小而需要频繁对文本计算哈希值时,采用本发明方法就可获得很大的效率提升。
C.访存次数减少。
本发明中每次读取一个机器字,设文本长度为n,则最多的访存次数为n/4;而现有的Wu-Manber方法的平均访存次数为n/(m-1),当最短模式串长度过小时,现有的Wu-Manber方法的访存次数很多,而采用本发明方法后访存次数可以有效减少。
具体实施方式
实施例1:
本发明提出的这种按字长匹配的多模式串匹配方法,分为预编译过程和搜索过程,其中的预编译过程和传统的Wu-Manber方法相同,即建立三个表:SHIFT表,HASH表和PREFIX表;在搜索过程中,每次匹配的单位为一个字长,即一个整型,通过对该整型进行移位操作,可以快速得到整型中包含的三个字符块的哈希值,再根据预编译过程得到的三个表,进行匹配验证。
本实施例中的实现平台为linux操作系统,字长为32位,中央处理器为双核酷睿2代,内存为2千兆字节,采用的是随机生成的9.54兆字节的匹配文本,字符集大小为256,模式串集合是从匹配文本中随机抽取的子串,模式串集合大小为100,集合中模式串长度差异不超过10,最短模式串的长度m从2到10之间变化。
本实施例按字长匹配的多模式串匹配方法的具体操作如下:
在预编译过程中构造3个表:一个跳转表即SHIFT表,一个哈希表即HASH表,一个前缀表即PREFIX表;设B为字符块的长度,m为最短模式串的长度,X当前需要计算哈希值的字符块;字符块哈希值的计算公式为:hash(X)=(X[0]*256)+X[1];
首先是建立SHIFT表:先建立一个空表,表项值都初始化为最大跳转距离m-B+1,在模式集中取每个模式串前m个字符,从后往前每次取相邻B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,按字符块跳转值的计算公式修改表中索引值为该字符块哈希值的表项值,即形成SHIFT表;
然后建立HASH表:先建立一个空表,表项值都初始化为空,在模式集中取每个模式串前m个字符的后B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成HASH表;
再建立PREFIX表:先建立一个空表,表项值初始化为空,取模式集中每个模式串前B个字符,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成PREFIX表;
将所述需要计算哈希值的字符块长度B取2,在搜索过程中,每次按字长读取文本,即每次从文本中装载一个整型值,字符块的哈希值通过对该整型值的移位得到;具体操作如下:
设当前读取机器字的内容是对应文本中的字符“abcd”,其中“abcd”四个字符均泛指任意字符,则该机器字对应三个字符块:前面字符块“ab”、中间字符块“bc”和后面字符块“cd”,机器字对应整型值为变量var,整个搜索过程分为四个阶段,用计算机语言描述如下:
第一阶段:
由计算前面字符块哈希值的公式hash("ab")=(var<<16)>>16得到前面字符块的哈希值V1,查SHIFT表得到表中索引值为前面字符块的哈希值V1的表项值:
switch(SHIFT[V1])
{
case0:查找HASH表中索引值为前面字符块的哈希值V1的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V1的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第二阶段;
case1:直接进入第二阶段;
case2,3,4:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第二阶段:
由计算中间字符块哈希值的公式hash("bc")=(var<<8)>>16得到中间字符块的哈希值V2,查SHIFT表:
switch(SHIFT[V2])
{
case0:查找HASH表中索引值为中间字符块的哈希值V2的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V2的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第三阶段;
case1,2:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第三阶段:
由计算后面字符块哈希值的公式hash("cd")=var>>16得到后面字符块的哈希值V3,查SHIFT表:
switch(SHIFT[V3])
{
case0:查找HASH表中索引值为后面字符块的哈希值V3的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V3的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
case1:直接进入第一阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第四阶段:
取下一个字长中与该字长中相邻的字符,由计算哈希值的公式计算得到相邻字长字符块的哈希值V4,查SHIFT表:
switch(SHIFT[V4])
{
case0:查找HASH表中索引值为字长字符块的哈希值V4的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V4的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
}。
本实施例中,每次匹配的单位为一个机器字,在机器字长为32位的计算机上操作,每次相当于跳跃了4个字节,这样就平滑了最短模式串长度过小时跳跃距离过小的劣势。通过按字长读取,使搜索过程所需的哈希值的计算加速,本发明根据机器中整型值存储的特点,设计合理的哈希函数,每次读入一个整型值,其包含的三个字符块的哈希值正好可以通过对该整型值的移位获得。本发明中仅仅通过移位即可获得所需的哈希值,而不需要进行逐个取值和做或运算,这样就加快了计算速度,特别是当最短模式串长度过小,需要频繁对文本计算哈希值时,采用本发明方法获得了很大效率提升,同时在访存效率上也获得了很大提高。本发明在搜索过程中每次读取一个字长的信息,而传统的方法需要访存4次才能获得,特别是在最短模式串长度过小时,由于跳跃距离小,传统的方法需要多次读取文本验证,访存频繁;而采用本发明方法的访存开销仅为现有方法的四分之一,获得了很大的效率提升。综合以上几点,本实施例中在跳跃距离、哈希值的计算和访存上都获得了优化,匹配效率得到提高。
性能及效果分析
综合使用本发明的上述优化技术以后,通过实验测试分析证实,本发明正确实现了多模式串匹配功能,匹配效率相对于现有的Wu-Manber方法平均提高了40%,在最短模式串长度为2和3时,匹配效率提高了60%以上。
与现有Wu-Manber技术相比,本发明主要做了以下改进:
A.最短模式串长度过小时,平均跳跃距离增大。
本发明方法中的最大跳跃距离为m-B+1;而在现有的Wu-Manber方法中当规则集中最短模式串长度过小时,最大跳跃距离受限,如当最短模式串长度为2时,最大跳跃距离为1;本发明方法通过按字长匹配方法,每次读入和处理的单位变为一个机器字,在最短模式串长度过小时,仍相当于跳跃距离为4,这样就平滑了最短模式串长度过小时跳跃距离过小的劣势。
B.哈希值的计算加速。
本发明中每次读入一个整型值,其包含的三个字符块的哈希值正好可以通过对该整型值的移位获得。仅仅通过移位即可获得所需的哈希值,而不需要进行逐个取值和做或运算,这样就加快了哈希值的计算速度,特别是当最短模式串长度过小而需要频繁对文本计算哈希值时,采用本发明方法就可获得很大的效率提升。
C.访存次数减少。
本发明中每次读取一个机器字,设文本长度为n,则最多的访存次数为n/4;而现有的Wu-Manber方法的平均访存次数为n/(m-1),当最短模式串长度过小时,现有的Wu-Manber方法的访存次数很多,如当m=2时,访存次数几乎是n。可见采用本发明方法后访存次数可以有效减少。
Claims (1)
1.一种按字长匹配的多模式串匹配方法,包括预编译过程和搜索过程,在字长为32位的计算机上进行如下操作:
所述预编译过程为构造3个表:一个跳转表即SHIFT表,一个哈希表即HASH表,一个前缀表即PREFIX表;设B为字符块的长度,m为最短模式串的长度,X为当前需要计算哈希值的字符块;字符块哈希值的计算公式为:
hash(X)=(X[0]*256B-1)+(X[1]*256B-2)+...+(X[B-1]*2560);
首先建立SHIFT表:先建立一个空表,表项值都初始化为最大跳转距离m-B+1,在模式集中取每个模式串前m个字符,从后往前每次取相邻B个字符组成字符块,按上面给出的字符块哈希值的计算公式计算该字符块的哈希值,按字符块跳转值的计算公式修改表中索引值为该字符块哈希值的表项值,即形成SHIFT表;
然后建立HASH表:先建立一个空表,表项值都初始化为空,在模式集中取每个模式串前m个字符的后B个字符组成字符块,按字符块哈希值的计算公式计算该字符块的哈希值,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成HASH表;
再建立PREFIX表:先建立一个空表,表项值初始化为空,取模式集中每个模式串前B个字符,把哈希值相等的模式串用链表链接起来,存储在表中对应索引值为该哈希值的表项中,即形成PREFIX表;
其特征在于:
将所述需要计算哈希值的字符块的长度B取2,在搜索过程中,每次按字长读取文本,即每次从文本中装载一个整型值,字符块的哈希值通过对该整型值的移位得到;具体操作如下:
设当前读取机器字的内容是对应文本中的字符“abcd”,其中“abcd”四个字符均泛指任意字符,则该机器字对应三个字符块:前面字符块“ab”、中间字符块“bc”和后面字符块“cd”,机器字对应整型值为变量var,整个搜索过程分为四个阶段,用计算机语言描述如下:
第一阶段:
由计算前面字符块哈希值的公式hash("ab")=(var<<16)>>16得到前面字符块的哈希值V1,查SHIFT表得到表中索引值为前面字符块的哈希值V1的表项值:
switch(SHIFT[V1])
{
case0:查找HASH表中索引值为前面字符块的哈希值V1的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V1的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第二阶段;
case1:直接进入第二阶段;
case2,3,4:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第二阶段:
由计算中间字符块哈希值的公式hash("bc")=(var<<8)>>16得到中间字符块的哈希值V2,查SHIFT表:
switch(SHIFT[V2])
{
case0:查找HASH表中索引值为中间字符块的哈希值V2的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V2的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第三阶段;
case1,2:直接进入第三阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第三阶段:
由计算后面字符块哈希值的公式hash("cd")=var>>16得到后面字符块的哈希值V3,查SHIFT表:
switch(SHIFT[V3])
{
case0:查找HASH表中索引值为后面字符块的哈希值V3的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V3的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
case1:直接进入第一阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
};
第四阶段:
取下一个字长中与该字长中相邻的字符,由计算哈希值的公式计算得到相邻字长字符块的哈希值V4,查SHIFT表:
switch(SHIFT[V4])
{
case0:查找HASH表中索引值为字长字符块的哈希值V4的表项值,即为符合的模式串链表,对链表中每一个模式串,首先查找PREFIX表中索引值为V4的表项值,验证前缀是否匹配,最后再进行模式串其余部分的验证,之后进入第四阶段;
default:若文本结束,则整个搜索过程结束;若文本没有结束,进入下一个机器字长的读取,重新进入第一阶段;
}。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210006598.6A CN102609450B (zh) | 2012-01-10 | 2012-01-10 | 一种按字长匹配的多模式串匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210006598.6A CN102609450B (zh) | 2012-01-10 | 2012-01-10 | 一种按字长匹配的多模式串匹配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102609450A CN102609450A (zh) | 2012-07-25 |
CN102609450B true CN102609450B (zh) | 2014-07-23 |
Family
ID=46526822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210006598.6A Expired - Fee Related CN102609450B (zh) | 2012-01-10 | 2012-01-10 | 一种按字长匹配的多模式串匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102609450B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103002061B (zh) * | 2011-09-16 | 2015-06-24 | 阿里巴巴集团控股有限公司 | 一种长域名与短域名互相转化的方法及装置 |
CN103593611A (zh) * | 2013-11-05 | 2014-02-19 | 安一恒通(北京)科技有限公司 | 一种快速识别病毒的方法和装置 |
CN105701093A (zh) * | 2014-11-24 | 2016-06-22 | 中兴通讯股份有限公司 | 基于自动机的模式匹配的方法及装置 |
CN104881439B (zh) * | 2015-05-11 | 2019-03-22 | 中国科学院信息工程研究所 | 一种多模式串匹配方法和系统 |
CN106850507B (zh) * | 2015-12-04 | 2020-01-14 | 北京航空航天大学 | 基于http压缩数据流的有害代码检测方法和装置 |
CN109656923B (zh) * | 2018-12-19 | 2020-11-24 | 北京字节跳动网络技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101251845A (zh) * | 2008-03-13 | 2008-08-27 | 苏州爱迪比科技有限公司 | 利用改进的Wu-Manber算法进行多模式串匹配的方法 |
US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
CN102184205A (zh) * | 2011-04-28 | 2011-09-14 | 哈尔滨工业大学 | 基于可扩展精度混沌哈希的多模式串匹配算法 |
-
2012
- 2012-01-10 CN CN201210006598.6A patent/CN102609450B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539681B2 (en) * | 2004-07-26 | 2009-05-26 | Sourcefire, Inc. | Methods and systems for multi-pattern searching |
CN101251845A (zh) * | 2008-03-13 | 2008-08-27 | 苏州爱迪比科技有限公司 | 利用改进的Wu-Manber算法进行多模式串匹配的方法 |
CN102184205A (zh) * | 2011-04-28 | 2011-09-14 | 哈尔滨工业大学 | 基于可扩展精度混沌哈希的多模式串匹配算法 |
Non-Patent Citations (8)
Title |
---|
《A Fast Algorithm for Multi-pattern Searching》;Wu Sun, Manber U.;《Technical Report:The University of Arizona: The Computer Science Department》;19940531;全文 * |
《Approximat e m ult iple st ring search》;Muth R, Manber U.;《In:Proc.7th Combinatorial Pattern Matching (CPM.96)》;19961231;全文 * |
《一种改进的Wu-Manber多模式串匹配算法》;马伟华等;《应用科技》;20071031;第34卷(第10期);全文 * |
《基于WM算法的多模式匹配改进算法WMN》;袁世忠等;《计算机工程与应用》;20071231;第43卷(第15期);全文 * |
Muth R, Manber U..《Approximat e m ult iple st ring search》.《In:Proc.7th Combinatorial Pattern Matching (CPM.96)》.1996,全文. |
Wu Sun, Manber U..《A Fast Algorithm for Multi-pattern Searching》.《Technical Report:The University of Arizona: The Computer Science Department》.1994,全文. |
袁世忠等.《基于WM算法的多模式匹配改进算法WMN》.《计算机工程与应用》.2007,第43卷(第15期),全文. |
马伟华等.《一种改进的Wu-Manber多模式串匹配算法》.《应用科技》.2007,第34卷(第10期),全文. |
Also Published As
Publication number | Publication date |
---|---|
CN102609450A (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609450B (zh) | 一种按字长匹配的多模式串匹配方法 | |
US10817490B2 (en) | Parser for schema-free data exchange format | |
CN103970722B (zh) | 一种文本内容去重的方法 | |
Kärkkäinen et al. | Lightweight lempel-ziv parsing | |
CN108132929A (zh) | 一种海量非结构化文本的相似性计算方法 | |
US20140122509A1 (en) | System, method, and computer program product for performing a string search | |
US8775457B2 (en) | Efficient string matching state machine | |
WO2008004335A1 (fr) | dispositif de recherche de séquence de bits, procédé de recherche et programme | |
US20130226885A1 (en) | Path-decomposed trie data structures | |
CN102184198B (zh) | 适用于工作负载保护系统的重复数据删除方法 | |
CN104572983A (zh) | 基于内存的散列表的构建方法、文本查找方法及相应装置 | |
CN105426412A (zh) | 多模式的串匹配方法和装置 | |
CN101369278A (zh) | 一种近似匹配方法和装置 | |
CN105488176A (zh) | 数据处理方法和装置 | |
Haj Rachid et al. | A practical and scalable tool to find overlaps between sequences | |
CN104281275A (zh) | 一种英文的输入方法和装置 | |
Sogabe et al. | An acceleration method of short read mapping using FPGA | |
Sogabe et al. | FPGA acceleration of short read mapping based on sort and parallel comparison | |
CN110457531B (zh) | 一种基于OpenMP的并行字符串查询方法 | |
CN105956203B (zh) | 一种信息存储方法、信息查询方法、搜索引擎装置 | |
Amir et al. | Sufficient conditions for efficient indexing under different matchings | |
WO2016082503A1 (zh) | 基于自动机的模式匹配的方法及装置 | |
CN116521733A (zh) | 一种数据查询方法及装置 | |
Fischer et al. | Practical evaluation of lempel-Ziv-78 and lempel-ziv-welch tries | |
CN112579839B (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: 20140723 |
|
CF01 | Termination of patent right due to non-payment of annual fee |