CN109800337B - 一种适用于大字母表的多模式正则匹配算法 - Google Patents

一种适用于大字母表的多模式正则匹配算法 Download PDF

Info

Publication number
CN109800337B
CN109800337B CN201811568545.7A CN201811568545A CN109800337B CN 109800337 B CN109800337 B CN 109800337B CN 201811568545 A CN201811568545 A CN 201811568545A CN 109800337 B CN109800337 B CN 109800337B
Authority
CN
China
Prior art keywords
characters
character
epsilon
nfa
incept
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.)
Active
Application number
CN201811568545.7A
Other languages
English (en)
Other versions
CN109800337A (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.)
Chengdu Wangan Technology Development Co ltd
Original Assignee
Chengdu Wangan Technology Development 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 Chengdu Wangan Technology Development Co ltd filed Critical Chengdu Wangan Technology Development Co ltd
Priority to CN201811568545.7A priority Critical patent/CN109800337B/zh
Publication of CN109800337A publication Critical patent/CN109800337A/zh
Application granted granted Critical
Publication of CN109800337B publication Critical patent/CN109800337B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Abstract

本发明属于信息处理领域,公开了一种适用于大字母表的多模式正则匹配算法,其具体步骤为:(1)依据Tompson构造法将多个正则表达式分别构造为用特定字符表示的ε‑NFA形式;(2)合并全部ε‑NFA为一个ε‑NFA;(3)调用裂变算法和子集构造法将合并后的ε‑NFA转化为DFA模块;(4)依次输入待匹配字符,并将其转化为用特定字符表示的形式,利用二分法快速查找该字符被DFA的哪条边接受,重复此步骤,直到全部字符匹配完成。本发明通过在子集构造法的基础上调用裂变算法,不仅解决了现有多模式匹配算法处理大字母表的正则表达式时出现内存不足而导致空间爆炸问题,而且提高了字符串匹配速率以及匹配结果的正确率。

Description

一种适用于大字母表的多模式正则匹配算法
技术领域
本发明属于信息处理领域,尤其涉及一种适用于大字母表的多模式正则匹配算法。
背景技术
近年来,正则表达式匹配技术成为计算机安全领域研究的热点问题,正则表达式具有强大的表达能力,在词法分析、深度包检测等多个方向都具有重要的用途,传统的正则表达式匹配技术主要采用基于正则表达式的单模式匹配算法,但随着被检测内容的逐渐复杂,基于正则表达式的多模式匹配算法(简称多模式正则匹配算法)渐渐替代了基于正则表达式的单模式匹配算法。
多模式正则匹配算法通过使用有穷状态自动机来实现,有穷状态自动机包括:确定的有穷状态自动机(DFA)和不确定的有穷状态自动机(NFA),由于DFA引擎具有更快的速度,所以多模式正则匹配算法一般采用DFA作为匹配引擎。然而采用DFA技术同时带来另一个问题:当处理字母表过大的正则表达式时,DFA的状态数量有可能指数增加进而导致存储空间爆炸问题。
现有的DFA压缩算法,如DDFA,是在DFA已经完全构造后,再对DFA进行处理,这种算法实际上并没有降低在DFA构造过程中的内存开销,且浪费了更多的时间。也就是说,现有的多模式正则匹配算法在处理大字母表的正则表达式时,不能解决内存不足而导致空间爆炸问题。所以研究一种适用于大字母表的多模式正则匹配算法是具有现实意义的。
发明内容
针对以上技术问题,本发明提出了一种适用于大字母表的多模式正则匹配算法,本发明的主要思想为:在DFA构造的过程中采用特殊编码方式和裂变算法,使得DFA的每条转移边上接收一个字符集,且必须保证从某节点出发的任意两条边上所接受的字符集,交集一定为空,因为若从某节点出发的任意两条边上接受的字符集交集非空,在这种情况下沿不同边跳转,可能导致不同的匹配结果。本发明不仅有效提高字符串匹配速度,而且减少了DFA内存开销,在处理大字母表的正则表达式时不会引起内存不足而导致空间爆炸问题。
本发明采用的技术方案如下:
文中涉及几个核心概念,U上的运算十、*和-定义为:
构造集合X,其中集合X的元素包括集合U和V中的全部元素,令[a,b]和[c,d]是U中元素,
+:若a<=d,b>=c-1,则[a,b]+[c,d]=[a,d],对X中任一元素e,将其表示成若干个U中元素的和,若加项的个数最少,则称该表示是e的最简形式;
*:若b<c或d<a,则[a,b]*[c,d]=[-1,-1],否则[a,b]*[c,d]=[max{a,c},min{b,d}],显然有[a,b]*[c,d]=[c,d]*[a,b];
-:若[a,b]*[c,d]=[-1,-1],则[a,b]-[c,d]=[a,b],否则记[a,b]*[c,d]=[m,n],且有下式成立:
Figure GSB0000180019210000021
以上三种运算都不是U上的封闭运算,运算的结果可能在X或V中。
一种适用于大字母表的多模式正则匹配算法,其特征在于:
(1)依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块;
(2)合并全部ε-NFA模块;
(3)调用裂变算法和子集构造法将ε-NFA转化为DFA模块;
(4)匹配执行模块。
具体的构造字符集U,以及从一般字符到字符集U的单射f,构造字符集V,以及从特殊字符到字符集V的单射g;
具体的为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树;
具体的利用Tompson构造法,为每一棵解析树分别构造一个ε-NFA。
具体的令U={[a,b]|a,b为整数且0≤a≤b≤N},其中N为正则表达式字母表
Figure GSB0000180019210000031
中的字符数;构造从一般字符到字符集U的单射f,在保证单射的情况下,f的取值任意;令V={[c,c]|-10≤c<0},其中[-1,-1]表示空集/>
Figure GSB0000180019210000032
常用特殊字符组成集合S,
Figure GSB0000180019210000033
构造从特殊字符集S到字符集V的单射g,且/>
Figure GSB0000180019210000034
通过g到字符集V的映射必须是[-1,-1],其他特殊字符通过g到字符集V的映射值是任意的。
具体的由正则表达式特殊符号的定义,可以将任一正则表达式改写成只包含字母表中字符、字符集和特殊字符的形式,然后利用单射f和g,为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树,并采用后序遍历的方式保存。
具体的利用Tompson构造法,为每棵解析树分别构造一个ε-NFA,其中每个ε-NFA的所有转移边都接受U或V中字符,并在终止态做标记。
具体的ε边表示一个状态不读入任何字符就可以跳到另一个状态上,通过添加一个公共起始状态、一个公共终止状态和多条ε边将所有ε-NFA合并为一个ε-NFA,并标记出所有终止状态。
具体的利用子集构造法将ε-NFA转换为DFA过程中,在构造从状态结点D出发的转移边之前,调用裂变算法,保证从该状态结点出发的转移边上的字符两两相交为空,消除DFA转移边上字符存在冗余现象,形成一个全序关系,最后利用子集构造法将转移边上接受相同字符的终止状态合并,进而转化为DFA,具体如下:
设已经构造好某个DFA状态结点D,由子集构造法可知,D是由一些NFA结点组成的集合,从状态结点D出发的所有状态转移边组成边集NT,NT={t0,t1,......,tk},构造边集NH,ti.incept表示ti边接受的字符,ti.des表示ti边的目标状态;hj.incept表示hj边接受的字符,hj.des表示hj边的目标状态;*代表交运算,-代表差运算,+代表并运算,两个区间的交集由E表示,且E不为空集,[-1,-1]代表空集。NT中的每个元素依次与NH中所有元素hj做以下计算,其中j=0,1,2,…,n,以NT中一个元素ti为例,其中i为常量:
(1)若NH中存在一个元素hj,满足hj.incept=ti.incept,则将ti放入NH中,i++,重复步骤(1),否则转(2);
(2)若NH中任一元素hj,其中j=0,1,2,…,n,都有hj.incept*ti.incept=[-1,-1],则将ti放入NH中,i++,转(1),否则记录与ti.incept取交不为空的全部hn,转(3);
(3)记录步骤(2)中所有与ti.incept取交不为空的全部hn,共n个,记hn.incept*ti.incept=En,则将以下元素放入NH中:
hn1:其中hn1满足hn1.incept=En且hn1.des=hj.des
tin:其中tin满足tin.incept=En且tin.des=ti.des
若hn.incept-En≠[-1,-1],且hn.incept-En可以表示成U中元素am的和,m取1,2,……任意值,则将以下元素添加到NH中,ain:ain.incept=am,ain.des=hn.des,删除全部hn
将tin.incept-E加入集合T中,对T中所有元素求交,记交集为J,如果
Figure GSB0000180019210000041
且J可以表示成U中元素bm的和,m取1,2,……任意值,则将这些边添加到NH中:bim:bim.incept=bm,bim.des=ti.des,清空集合T。若i=k则结束,否则i++转(1)。
具体的将待匹配字符串中的字符依次输入,每个字符通过映射f和g转化为等价的用U和V中元素表示的字符,由于从某一节点出发的所有边接受的字符集两两不相交,所以利用二分查找的办法,快速确定该字符被哪条边接受,重复此步骤,直到全部字符匹配完成。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明是在子集构造法的基础上调用了裂变算法,不仅解决了转移边存在冗余问题,提高了匹配结果的正确率,而且在处理大字母表的正则表达式时不会引起空间爆炸而导致内存不足问题,减少了DFA内存开销,有效提高了匹配速率。
附图说明
图1为裂变算法情况(1);
图2为裂变算法情况(2);
图3为裂变算法情况(3);
图4为本发明的具体算法流程图;
图5为本发明的具体实施例说明图。
具体实施方式
为使本发明之目的、技术方案和优点阐述更加清晰,下面将结合附图与实际用例,对本发明做进一步的详细描述。
以NT中某个元素ti为例,ti与NH中所有元素hj做裂变算法,j=0,1,2,……,n
实施例1
图1为本发明中裂变算法情况(1),若NH中存在一个元素hj,满足hj.incept=ti.incept,则将ti放入NH中,元素序号为hn+1,再用NT中ti+1与NH中所有元素hj做裂变算法,j=0,1,2,……,n+1。
实施例2
图2为本发明中裂变算法情况(2),若NH中所有元素hj,其中j=0,1,2,…,n,都有hj.incept*ti.incept=[-1,-1],则将ti放入NH中,元素序号为hn+1,再用NT中ti+1与NH中所有元素做裂变算法,j=0,1,2,……,n+1。
实施例3
图3为本发明中裂变算法情况(3),本情况是裂变算法中最复杂的,下面结合附图3做详细解释,记录NH中与NT中元素ti相交不为空的全部hj,图3中假设全部hj共3个,h1、h2和h3,先添加第一类边到NH中,第一类边包括图3(1)中阴影区域,记hn.incept*ti.incept=En,则第一类边为:
h11:其中h11满足h11.incept=E1且h11.des=h1.des
ti1:其中ti1满足ti1.incept=E1且ti1.des=ti.des
h21:其中h21满足h21.incept=E2且h21.des=h2.des
ti2:其中ti2满足ti2.incept=E2且ti2.des=ti.des
h31:其中h31满足h31.incept=E3且h31.des=h3.des
ti3:其中ti3满足ti3.incept=E3且ti3.des=ti.des
再添加第二类边到NH,第二类边包括图3(2)中阴影区域,因为hn.incept-En≠[-1,-1],且hn.incept-En可以表示成U中元素am的和,m取1,2,……任意值,则将这些第二类边添加到NH中:
ai1:其中ai1满足ai1.incept=h1.incept-E1=a1且ai1.des=h1.des
ai3:其中ai3满足ai3.jncept=h3.incept-E3=a3且ai3.des=h3.des
删除h1、h2和h3
最后添加第三类边到NH,第三类边包括图3(3)中阴影区域,将tin.incept-En加入集合T中,对T中所有元素求交,记交集为J,如果
Figure GSB0000180019210000071
且J可以表示成U中元素bm的和,m取1,2,……任意值,则将这些第三类边添加到NH中:
bi1:其中bi1满足bi1.incept=b1且bi1.des=ti.des,
bi2:其中bi1满足bi2.incept=b2且bi2.des=ti.des
清空集合T。
实施例4
图4为本发明的总流程图,具体步骤为:
(1)为每个正则表达式构造一个用特定字符表示的解析树,并利用Tompson构造法为每棵解析树分别构造一个ε-NFA;
(2)合并全部ε-NFA为一个ε-NFA;
(3)调用裂变算法和子集构造法将ε-NFA转化为DFA;
(4)将待匹配的字符转化为用特定字符表示形式,并利用二分法依次匹配某个字符被哪条边接受,重复此步骤,直到全部字符匹配完成。
以Unicode码为正则表达式字母表,结合实际用例和图5做以下描述。
现有正则表达式1:“\d&我a*”,正则表达式2:“6&(b|c)”,需要检测大量文本中是否包含这两条正则表达式,步骤如下:
步骤1:根据表1中的映射关系,将正则表达式转化为用特定字符集U和V中字符表示形式,为其构造解析树,并采用后序遍历保存,保存结果为:
正则表达式1:[48,57][25105,25105][-302,-302][97,97][-303,-303][-302,-302];
正则表达式2:[54,54][98,98][99,99][-301,-301][-302,-302]。
表1实施例中映射关系表
Figure GSB0000180019210000081
步骤2:为每棵解析树分别构造一个ε-NFA,结果如下:
正则表达式1构造的ε-NFA如图5(1),并为终止状态7做标记;
正则表达式2构造的ε-NFA如图5(2),并为终止状态8做标记。
步骤3:通过添加一个公共起始状态、公共终止状态和多条ε边将全部ε-NFA合并为一个ε-NFA,合并后的ε-NFA如图5(3)。
步骤4:根据裂变算法对转移边上的字符集进行消除冗余处理,所有状态转移边组成边集NT,NT={[48,57],[25105,25105],[97,97],[54,54],[98,98],[99,99]},构造边集NH,NH={},先用NT中每个元素依次与NH中所有元素做以下处理:
(1)若NH中任一元素hj,其中j=0,1,2,…,n,都有hj.incept*ti.incept=[-1,-1],则将ti放入NH中,因NH中任意元素与t0的交集为空,则首先将t0放入NH中,NH={[48,57]}。
(2)因NH中任意元素与t1的交集为空,则将t1放入NH中,NH={[48,57],[25105,25105]}。
(3)因NH中任意元素与t2的交集为空,则将t2放入NH中,NH={[48,57],[25105,25105],[97,97]}。
(4)因h0与t3的交集非空,则需调用裂变算法,计算交集[48,57]*[54,54]=[54,54],首先将以下元素放入NH中:
h01:其中h01满足h01.incept=[54,54]且h01.des=h0.des
t31:其中t31满足t31.incept=[54,54]且t31.des=t3.des
若hn.incept-En≠[-1,-1],且hn.incept-En可以表示成U中元素am的和,m取1,2,……任意值,即就是,若h0.incept-[54,54]≠[-1,-1],且h0.incept-En可以表示成U中元素am的和,m取1,2,……任意值,则将以下元素添加到NH中,
a31:其中a31满足a31.incept=[48,53]且a31.des=h0.des
a32:其中a32满足a32.incept=[55,57]且a32.des=h0.des
删除h0,则现在NH={[48,53],[54,54],[55,57,][25105,25105],[97,97]}
(5)以此类推,最后得到的NH为:
NH={[48,53],[54,54],[55,57,][25105,25105],[97,97],[98,98],[99,99]}
利用子集构造法将合并后的ε-NFA转化为DFA,并为终止状态4、5、6和7做标记,转化后的DFA如图5(4)。
步骤5:将待匹配字符串中的字符依次输入,每个字符通过映射f和g转化为等价的用U和V中元素表示的字符,利用二分查找法,在DFA上能够快速确定该字符被哪条边接受,重复此步骤,直到全部字符匹配完成。
以上为本发明的具体实施例,但并不用以限制本发明,对于本技术领域的普通技术人员来说,凡在不脱离本发明原理的前提下,所做的任何修改、等同替换、改进等,均应包含在本发明的保护发明范围之内。
本发明的有益效果是当处理字母表过大的正则表达式时,通过调用裂变算法,解决了因DFA状态数量指数增加而导致的空间爆炸问题,从而减少了内存开销,并且达到了提高字符串匹配速率以及提高匹配结果准确率的目的。

Claims (7)

1.一种适用于大字母表的多模式正则匹配算法,其特征在于:
(1)依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块;
(2)合并全部ε-NFA模块;
(3)调用裂变算法和子集构造法将ε-NFA转化为DFA模块;
(4)匹配执行模块;
其中,所述调用裂变算法和子集构造法将ε-NFA转化为DFA模块的步骤,包括:
利用子集构造法将ε-NFA转换为DFA过程中,在构造从状态结点D出发的转移边之前,调用裂变算法,保证从该状态结点出发的转移边上的字符两两相交为空,消除DFA转移边上字符存在冗余现象,形成一个全序关系,最后利用子集构造法将转移边上接受相同字符的终止状态合并,进而转化为DFA,具体如下:
设已经构造好某个DFA状态结点D,由子集构造法可知,D是由一些NFA结点组成的集合,从状态结点D出发的所有状态转移边组成边集NT,NT={t0,t1,......,tk},构造边集NH,ti.incept表示ti边接受的字符,ti.des表示ti边的目标状态;hj.incept表示hj边接受的字符,hj.des表示hj边的目标状态;*代表交运算,-代表差运算,+代表并运算,两个区间的交集由E表示,且E不为空集,[-1,-1]代表空集;NT中的每个元素依次与NH中所有元素hj做以下计算,其中j=0,1,2,…,n,以NT中一个元素ti为例,其中i为常量:
(1)若NH中存在一个元素hj,满足hj.incept=ti.incept,则将ti放入NH中,i每次使用完后自动加1,重复步骤(1),否则转(2);
(2)若NH中任一元素hj,其中j=0,1,2,…,n,都有hj.incept*ti.incept=[-1,-1],则将ti放入NH中,i每次使用完后自动加1,转(1),否则记录与ti.incept取交不为空的全部hn,转(3);
(3)记录步骤(2)中所有与ti.incept取交不为空的全部hn,共n个,记hn.incept*ti.incept=En,则将以下元素放入NH中:
hn1:其中hn1满足hn1.incept=En且hn1.des=hj.des
tin:其中tin满足tin.incept=En且tin.des=ti.des
若hn.incept-En≠[-1,-1],且hn.incept-En可以表示成U中元素am的和,m取1,2,……,则将以下元素添加到NH中,
ain:其中ain满足ain.incept=am且ain.des=hn.des
删除全部hn
将tin.incept-E加入集合T中,对T中所有元素求交,记交集为J,如果
Figure FDA0004227235810000021
且J可以表示成U中元素bm的和,m取1,2,……任意值,则将以下元素添加到NH中:
bim:其中bim满足bim.incept=bm且bim.des=ti.des
清空集合T,若i=k则结束,否则i每次使用完后自动加1转(1)。
2.如权利要求1所述的一种适用于大字母表的多模式正则匹配算法,其特征在于,依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块,具体为:
(1)构造字符集U,以及从一般字符到字符集U的单射f,构造字符集V,以及从特殊字符到字符集V的单射g;
(2)为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树;
(3)利用Tompson构造法,为每一棵解析树分别构造一个ε-NFA。
3.如权利要求2所述的适用于大字母表的多模式正则匹配算法,其特征在于,构造字符集U,以及从一般字符到字符集U的单射f,构造字符集V,以及从特殊字符到字符集V的单射g,具体为:
令U={[a,b]},a,b为整数且0≤a≤b≤N,其中N为正则表达式字母表
Figure FDA0004227235810000031
中的字符数;构造从一般字符到字符集U的单射f,在保证单射的情况下,f的取值任意;
令V={[c,c]},-10≤c<0,其中[-1,-1]表示空集
Figure FDA0004227235810000032
常用特殊字符组成集合S,
Figure FDA0004227235810000033
构造从特殊字符集S到字符集V的单射g,且/>
Figure FDA0004227235810000034
通过g到字符集V的映射必须是[-1,-1],其他特殊字符通过g到字符集V的映射值是任意的。
4.如权利要求2所述的适用于大字母表的多模式正则匹配算法,其特征在于,为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树,具体为:
由正则表达式特殊符号的定义,可以将任一正则表达式改写成只包含字母表中字符、字符集和特殊字符的形式,然后利用单射f和g,为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树,并采用后序遍历的方式保存。
5.如权利要求2所述的适用于大字母表的多模式正则匹配算法,其特征在于利用Tompson构造法,为每棵解析树分别构造一个ε-NFA,具体为:
利用Tompson构造法,为每棵解析树分别构造一个ε-NFA,其中每个ε-NFA的所有转移边都接受U或V中字符,并在终止态做标记。
6.如权利要求1所述的一种适用于大字母表的多模式正则匹配算法,其特征在于合并全部ε-NFA模块,具体为:
ε边表示一个状态不读入任何字符就可以跳到另一个状态上,通过添加一个公共起始状态、一个公共终止状态和多条ε边将所有ε-NFA合并为一个ε-NFA,并标记出所有终止状态。
7.如权利要求1所述的一种适用于大字母表的多模式正则匹配算法,其特征在于匹配执行模块,具体为:
将待匹配字符串中的字符依次输入,每个字符通过映射f和g转化为等价的用U和V中元素表示的字符,由于从某一节点出发的所有边接受的字符集两两不相交,所以利用二分查找法,能够快速确定该字符被哪条边接受,重复此步骤,直到全部字符匹配完成。
CN201811568545.7A 2018-12-06 2018-12-06 一种适用于大字母表的多模式正则匹配算法 Active CN109800337B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811568545.7A CN109800337B (zh) 2018-12-06 2018-12-06 一种适用于大字母表的多模式正则匹配算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811568545.7A CN109800337B (zh) 2018-12-06 2018-12-06 一种适用于大字母表的多模式正则匹配算法

Publications (2)

Publication Number Publication Date
CN109800337A CN109800337A (zh) 2019-05-24
CN109800337B true CN109800337B (zh) 2023-07-11

Family

ID=66557304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811568545.7A Active CN109800337B (zh) 2018-12-06 2018-12-06 一种适用于大字母表的多模式正则匹配算法

Country Status (1)

Country Link
CN (1) CN109800337B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111753150B (zh) * 2020-05-15 2023-10-13 中国科学院信息工程研究所 一种基于图搜索方法加速epsilon闭包计算的方法及系统
CN111753144B (zh) * 2020-05-15 2023-10-17 中国科学院信息工程研究所 一种基于Warshall方法加速epsilon闭包计算的方法及系统
CN113627164B (zh) * 2021-07-12 2024-03-01 中国科学院信息工程研究所 一种状态爆炸型正则表达式的识别方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105150A2 (en) * 2006-03-10 2007-09-20 Koninklijke Philips Electronics, N.V. Methods and systems for identification of dna patterns through spectral analysis
CN107612933A (zh) * 2017-10-20 2018-01-19 广东岭南职业技术学院 一种新型计算机网络病毒防御系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3852757B2 (ja) * 2002-02-05 2006-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 文字列照合方法、これを用いた文書処理装置及びプログラム
CN103259793B (zh) * 2013-05-02 2015-10-21 东北大学 基于后缀自动机正则引擎构造的深度包检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007105150A2 (en) * 2006-03-10 2007-09-20 Koninklijke Philips Electronics, N.V. Methods and systems for identification of dna patterns through spectral analysis
CN107612933A (zh) * 2017-10-20 2018-01-19 广东岭南职业技术学院 一种新型计算机网络病毒防御系统

Also Published As

Publication number Publication date
CN109800337A (zh) 2019-05-24

Similar Documents

Publication Publication Date Title
US10169426B2 (en) Fast identification of complex strings in a data stream
CN109800337B (zh) 一种适用于大字母表的多模式正则匹配算法
US8843508B2 (en) System and method for regular expression matching with multi-strings and intervals
CN102867049B (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN112100361B (zh) 一种基于ac自动机的字符串多模模糊匹配方法
CN111460170B (zh) 一种词语识别方法、装置、终端设备及存储介质
US20160210333A1 (en) Method and device for mining data regular expression
CN109033833B (zh) 一种基于多特征与特征选择的恶意代码分类方法
CN103514238A (zh) 基于分类查找的敏感词识别处理方法
Hull et al. An integrated algorithm for text recognition: comparison with a cascaded algorithm
CN111144117B (zh) 知识图谱中文地址消除歧义方法
CN110245349A (zh) 一种句法依存分析方法、装置及一种电子设备
Chida et al. On lookaheads in regular expressions with backreferences
CN116414824A (zh) 行政区划信息识别和标准化处理的方法、装置及存储介质
CN114201756A (zh) 一种智能合约代码片段的漏洞检测方法和相关装置
Hameed et al. SURAGH: Syntactic Pattern Matching to Identify Ill-Formed Records.
CN103294735B (zh) 基于tcam的确定性有穷状态自动机dfa的匹配方法和装置
CN114625933A (zh) 内存中字符串查找方法、装置、设备、存储介质及产品
CN113065419A (zh) 一种基于流量高频内容的模式匹配算法及系统
Kopelowitz et al. Succinct online dictionary matching with improved worst-case guarantees
US20140289264A1 (en) One pass submatch extraction
Daciuk et al. Natural Language Dictionaries Implemented as Finite Automata.
CN106156259A (zh) 一种用户行为信息展示方法及系统
CN117201138B (zh) 一种基于漏洞子图的智能合约漏洞检测方法、系统和设备
Ma et al. An Information Retrieval Algorithm for Accounting Internal Audit Using Multi-Pattern Similarity Matching

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant