CN109800337A - 一种适用于大字母表的多模式正则匹配算法 - Google Patents
一种适用于大字母表的多模式正则匹配算法 Download PDFInfo
- Publication number
- CN109800337A CN109800337A CN201811568545.7A CN201811568545A CN109800337A CN 109800337 A CN109800337 A CN 109800337A CN 201811568545 A CN201811568545 A CN 201811568545A CN 109800337 A CN109800337 A CN 109800337A
- Authority
- CN
- China
- Prior art keywords
- character
- nfa
- incept
- des
- regular expression
- 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.)
- Granted
Links
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],且有下式成立:
以上三种运算都不是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为正则表达式字母表中的字符数;构造从一般字符到字符集U的单射f,在保证单射的情况下, f的取值任意;令V={[c,c]|-10≤c<0},其中[-1,-1]表示空集常用特殊字符组成集合S,构造从特殊字符集S到字符集V的单射g,且通过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,如果且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,如果且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实施例中映射关系表
步骤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 (8)
1.一种适用于大字母表的多模式正则匹配算法,其特征在于:
(1)依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块;
(2)合并全部ε-NFA模块;
(3)调用裂变算法和子集构造法将ε-NFA转化为DFA模块;
(4)匹配执行模块。
2.如权利要求1所述的一种适用于大字母表的多模式正则匹配算法,其特征在于依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块,具体为:
(1)构造字符集U,以及从一般字符到字符集U的单射f,构造字符集V,以及从特殊字符到字符集V的单射g;
(2)为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树;
(3)利用Tompson构造法,为每一棵解析树分别构造一个ε-NFA。
3.如权利要求2所述的依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块,其特征在于构造字符集U,以及从一般字符到字符集U的单射f,构造字符集V,以及从特殊字符到字符集V的单射g,具体为:
令U={[a,b]|a,b为整数且0≤a≤b≤N},其中N为正则表达式字母表中的字符数;构造从一般字符到字符集U的单射f,在保证单射的情况下,f的取值任意;
令V={[c,c]|-10≤c<0},其中[-1,-1]表示空集常用特殊字符组成集合S,构造从特殊字符集S到字符集V的单射g,且通过g到字符集V的映射必须是[-1,-1],其他特殊字符通过g到字符集V的映射值是任意的。
4.如权利要求2所述的依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块,其特征在于为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树,具体为:
由正则表达式特殊符号的定义,可以将任一正则表达式改写成只包含字母表中字符、字符集和特殊字符的形式,然后利用单射f和g,为每条正则表达式分别生成一棵由字符集U和V中字符表示的解析树,并采用后序遍历的方式保存。
5.如权利要求2所述的依据Tompson构造法将正则表达式分别构造为用特定字符表示的ε-NFA模块,其特征在于利用Tompson构造法,为每棵解析树分别构造一个ε-NFA,具体为:
利用Tompson构造法,为每棵解析树分别构造一个ε-NFA,其中每个ε-NFA的所有转移边都接受U或V中字符,并在终止态做标记。
6.如权利要求1所述的一种适用于大字母表的多模式正则匹配算法,其特征在于合并全部ε-NFA模块,具体为:
ε边表示一个状态不读入任何字符就可以跳到另一个状态上,通过添加一个公共起始状态、一个公共终止状态和多条ε边将所有ε-NFA合并为一个ε-NFA,并标记出所有终止状态。
7.如权利要求1所述的一种适用于大字母表的多模式正则匹配算法,其特征在于调用裂变算法和子集构造法将ε-NFA转化为DFA模块,具体为:
利用子集构造法将ε-NFA转换为DFA过程中,在构造从状态结点D出发的转移边之前,调用裂变算法,保证从该状态结点出发的转移边上的字符两两相交为空,消除DFA转移边上字符存在冗余现象,形成一个全序关系,最后利用子集构造法将转移边上接受相同字符的终止状态合并,进而转化为DFA,具体如下:
设已经构造好某个DFA状态结点D,由子集构造法可知,D是由一些NFA结点组成的集合,从状态结点D出发的所有状态转移边组成边集NT,NT={t0,t1,......,tk},构造边集NH,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满足ain.incept=am且ain.des=hn.des
删除全部hn
将tin.incept-E加入集合T中,对T中所有元素求交,记交集为J,如果且J可以表示成U中元素bm的和,m取1,2,……任意值,则将以下元素添加到NH中:
bim:其中bim满足bim.incept=bm且bim.des=ti.des
清空集合T,若i=k则结束,否则i++转(1)。
8.如权利要求1所述的一种适用于大字母表的多模式正则匹配算法,其特征在于匹配执行模块,具体为:
将待匹配字符串中的字符依次输入,每个字符通过映射f和g转化为等价的用U和V中元素表示的字符,由于从某一节点出发的所有边接受的字符集两两不相交,所以利用二分查找法,能够快速确定该字符被哪条边接受,重复此步骤,直到全部字符匹配完成。
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 true CN109800337A (zh) | 2019-05-24 |
CN109800337B 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111753144A (zh) * | 2020-05-15 | 2020-10-09 | 中国科学院信息工程研究所 | 一种基于Warshall方法加速epsilon闭包计算的方法及系统 |
CN111753150A (zh) * | 2020-05-15 | 2020-10-09 | 中国科学院信息工程研究所 | 一种基于图搜索方法加速epsilon闭包计算的方法及系统 |
CN113496119A (zh) * | 2020-03-20 | 2021-10-12 | 北京庖丁科技有限公司 | 抽取表格中的元组数据的方法、电子设备和计算机可读介质 |
CN113627164A (zh) * | 2021-07-12 | 2021-11-09 | 中国科学院信息工程研究所 | 一种状态爆炸型正则表达式的识别方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003242179A (ja) * | 2002-02-05 | 2003-08-29 | Internatl Business Mach Corp <Ibm> | 文字列照合方法、これを用いた文書処理装置及びプログラム |
WO2007105150A2 (en) * | 2006-03-10 | 2007-09-20 | Koninklijke Philips Electronics, N.V. | Methods and systems for identification of dna patterns through spectral analysis |
CN103259793A (zh) * | 2013-05-02 | 2013-08-21 | 东北大学 | 基于后缀自动机正则引擎构造的深度包检测方法 |
CN107612933A (zh) * | 2017-10-20 | 2018-01-19 | 广东岭南职业技术学院 | 一种新型计算机网络病毒防御系统 |
-
2018
- 2018-12-06 CN CN201811568545.7A patent/CN109800337B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003242179A (ja) * | 2002-02-05 | 2003-08-29 | Internatl Business Mach Corp <Ibm> | 文字列照合方法、これを用いた文書処理装置及びプログラム |
WO2007105150A2 (en) * | 2006-03-10 | 2007-09-20 | Koninklijke Philips Electronics, N.V. | Methods and systems for identification of dna patterns through spectral analysis |
CN103259793A (zh) * | 2013-05-02 | 2013-08-21 | 东北大学 | 基于后缀自动机正则引擎构造的深度包检测方法 |
CN107612933A (zh) * | 2017-10-20 | 2018-01-19 | 广东岭南职业技术学院 | 一种新型计算机网络病毒防御系统 |
Non-Patent Citations (2)
Title |
---|
杜文超等: "基于DoLFA的高效正则表达式匹配算法", 《计算机科学》 * |
杜文超等: "基于DoLFA的高效正则表达式匹配算法", 《计算机科学》, no. 09, 30 September 2012 (2012-09-30) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113496119A (zh) * | 2020-03-20 | 2021-10-12 | 北京庖丁科技有限公司 | 抽取表格中的元组数据的方法、电子设备和计算机可读介质 |
CN111753144A (zh) * | 2020-05-15 | 2020-10-09 | 中国科学院信息工程研究所 | 一种基于Warshall方法加速epsilon闭包计算的方法及系统 |
CN111753150A (zh) * | 2020-05-15 | 2020-10-09 | 中国科学院信息工程研究所 | 一种基于图搜索方法加速epsilon闭包计算的方法及系统 |
CN111753150B (zh) * | 2020-05-15 | 2023-10-13 | 中国科学院信息工程研究所 | 一种基于图搜索方法加速epsilon闭包计算的方法及系统 |
CN111753144B (zh) * | 2020-05-15 | 2023-10-17 | 中国科学院信息工程研究所 | 一种基于Warshall方法加速epsilon闭包计算的方法及系统 |
CN113627164A (zh) * | 2021-07-12 | 2021-11-09 | 中国科学院信息工程研究所 | 一种状态爆炸型正则表达式的识别方法及系统 |
CN113627164B (zh) * | 2021-07-12 | 2024-03-01 | 中国科学院信息工程研究所 | 一种状态爆炸型正则表达式的识别方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109800337B (zh) | 2023-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109800337A (zh) | 一种适用于大字母表的多模式正则匹配算法 | |
CN106709345B (zh) | 基于深度学习方法推断恶意代码规则的方法、系统及设备 | |
CN109670163B (zh) | 信息识别方法、信息推荐方法、模板构建方法及计算设备 | |
WO2020073673A1 (zh) | 一种文本分析方法及终端 | |
JP7302987B2 (ja) | 詐欺検出を改善するためのデータ拡張の方法、デバイス、およびシステム | |
CN104765729B (zh) | 一种跨平台微博社区账户匹配方法 | |
Sun et al. | Attention-based machine learning model for smart contract vulnerability detection | |
CN106682343B (zh) | 一种基于图的邻接矩阵的形式化验证方法 | |
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN110581864B (zh) | 一种sql注入攻击的检测方法及装置 | |
CN111460170B (zh) | 一种词语识别方法、装置、终端设备及存储介质 | |
CN111160041B (zh) | 语义理解方法、装置、电子设备和存储介质 | |
CN101751385A (zh) | 一种采用层次管道过滤器体系结构的多语言信息抽取方法 | |
US20220004621A1 (en) | Data recovery through reversal of hash values using probabilistic data structures | |
CN107861944A (zh) | 一种基于Word2Vec的文本标签提取方法及装置 | |
CN110362995A (zh) | 一种基于逆向与机器学习的恶意软件检测及分析系统 | |
CN114064117A (zh) | 一种基于字节码和神经网络的代码克隆检测方法及系统 | |
CN112199606A (zh) | 一种基于层次用户表示的面向社交媒体的谣言检测系统 | |
CN104391969A (zh) | 确定用户查询语句句法结构的方法及装置 | |
Li et al. | Web application attack detection based on attention and gated convolution networks | |
CN112765330A (zh) | 文本数据处理方法、装置、电子设备和存储介质 | |
Pradeepa et al. | Malicious domain detection using nlp methods—a review | |
Mishra et al. | Similarity search based on text embedding model for detection of near duplicates | |
CN112528600B (zh) | 文本数据处理方法、相关装置及计算机程序产品 | |
Mittal et al. | Blockchain Based Abstract Syntax Tree to Detect Vulnerability in IOT-Enabled Smart Contract |
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 |