CN115292558A - 基于正则表达式的模式匹配方法、系统、存储介质及设备 - Google Patents
基于正则表达式的模式匹配方法、系统、存储介质及设备 Download PDFInfo
- Publication number
- CN115292558A CN115292558A CN202210966133.9A CN202210966133A CN115292558A CN 115292558 A CN115292558 A CN 115292558A CN 202210966133 A CN202210966133 A CN 202210966133A CN 115292558 A CN115292558 A CN 115292558A
- Authority
- CN
- China
- Prior art keywords
- expression
- automaton
- pattern matching
- operator
- node
- 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
- 230000014509 gene expression Effects 0.000 title claims abstract description 200
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000004044 response Effects 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002452 interceptive effect Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种基于正则表达式的模式匹配方法、系统、存储介质及设备,方法包括:规定受限正则表达式子类ICRE,其具有链式结构;规定ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中一元操作符匹配优先级高于二元操作符;对于属于ICRE的给定表达式E,按照InferICRE中各类操作符对应的自动机结构为表达式E构建相应的自动机A,其中相应的自动机A的结构中具有从起始结点经中间结点到终止结点的至少一条路径;执行模式匹配时,对于任意选定的字符串s,从起始结点开始按照字符串s中字符顺序在自动机A中匹配中间结点;响应于能够为字符串s在自动机A中匹配到从起始结点到终止结点的路径,则字符串s被自动机A接收、符合表达式E的模式。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及数据模式分析技术领域,具体涉及数据模式匹配技术领域。
背景技术
数据模式分析是自然语言处理以及形式语言研究中重要的技术,广泛应用于子串查找、模式合法性及有效性验证、数据表示、数据结构化及自动化等等相关领域。然而,现实中数据往往存在模式确实的情况。比如在XML领域,XML文档数据定义必须符合一定的规范,这些规范是由模式语言来定义的。XML模式的定义,保证了XML文档的规范性和合法性,提升了XML数据处理的效率。然而研究表明,拥有相应模式定义的XML数据比例很低,只有30.2%,其中合法的模式文件更低,仅有24.5%。模式确实问题十分严峻,这为后续自动化大规模的数据处理带来了很大的不便。因此,为数据设计合理的模式成为模式分析领域一个亟待解决的热点问题,这个问题可以规约为语言的归纳学习问题:即从给定的有限数据样本中,推断出合理的模式。XML语言模式通常可以用正则表达式子类来表示,因此转变成为一个正则表达式子类的推断问题。
现有XML模式推断技术主要包括如下正则表达式子类。子类SORE(singleoccurrence regular expression),限制表达式中字符出现次数为单次。子类SimplifiedCHARE,是SORE的子类,并且要求表达式的形式必须是链式结构(即由连接操作符连接)。子类CHARE和Simplified CHARE的区别是CHARE只要求是链式结构,但是字符出现次数不受单次限制。子类kSORE是要求表达式中单个字符出现次数为k次,但是结构形式没有限制。其他子类根据不同领域数据的特征进行了不同的限制,得到了不同的受限正则表达式,作为数据的模式。
然而,现有XML模式推断技术主要针对标准正则表达式,并且限定其中字母为单词出现(SORE,single occurrence regular expression),对于带数字([m,n],m为字母出现最低次数,n为字母出现最高次数)或者交互出现(a&b=ab+ba)的表达式考虑的比较少。有些子类加入了带数字或者交互形式的多种限制,导致在实际应用中泛化能力很差,领域知识敏感,在多个领域无法通过。
因此,针对现有技术中的上述缺点、问题,需要提出一种优化的基于正则表达式的模式匹配方法,提高在实际应用中的泛化能力,降低领域知识敏感性。
发明内容
有鉴于此,本发明的目的在于提出一种改进的数据模式分析的方法、系统、存储介质及设备,从而解决现有技术中在实际应用中的泛化能力不足、领域知识敏感性过高等问题。
基于上述目的,一方面,本发明提供了一种基于正则表达式的模式匹配方法,其中该方法包括以下步骤:
规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构;
规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级;
对于属于受限正则表达式子类ICRE的给定表达式E,按照模式匹配算法InferICRE中各类操作符对应的自动机结构为表达式E构建对应于表达式E的自动机A,其中对应于表达式E的自动机A的结构中具有从起始结点经中间结点到终止结点的至少一条路径;
执行模式匹配时,对于任意选定的字符串s,从起始结点开始按照字符串s中字符顺序在对应于表达式E的自动机A中匹配中间结点;
响应于能够为字符串s在对应于表达式E的自动机A中匹配到从起始结点到终止结点的路径,则字符串s被对应于表达式E的自动机A接收,从而符合表达式E的模式。
在根据本发明的基于正则表达式的模式匹配方法的一些实施例中,规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构进一步包括:
链式结构由交互操作符“&”以及连接操作符“,”链接。
在根据本发明的基于正则表达式的模式匹配方法的一些实施例中,规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构进一步包括:
在有限字母表集合∑上,受限正则表达式子类ICRE的链式结构的形式为
f1 tf2 t,...,fn t,或
f1 t&f2 t&…&fn t,
其中t∈{1,?,*,+,[m,n]},fi为链式因子,其中每个链式因子fi的形式为
(a1 t|a2 t|…|an t),其中a∈∑*,
其中,∑*表示字母表∑中任意字母的任意次数连接;“|”表示或操作符;“,”表示连接操作符;1表示出现一次;?表示出现0次或者1次;*表示出现次数为大于等于0次;+表示出现次数为大于等于1次;[m,n]表示出现次数最小为m次,最多为n次。
在根据本发明的基于正则表达式的模式匹配方法的一些实施例中,规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
一元操作符包括{1,?,*,+,[m,n]},并且二元操作符包括{“|”,“,”,“&”}。
在根据本发明的基于正则表达式的模式匹配方法的一些实施例中,规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
在一元操作符中,对于任意字符连续出现的判断中,[m,n]具有高于+、*操作符的匹配优先级,并且二元操作符中优先级关系为“,”>“&”>“|”。
在根据本发明的基于正则表达式的模式匹配方法的一些实施例中,规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
一元操作符对应的自动机结构包括起始结点、终止结点以及基于不同操作符在起始结点和终止结点之间由字符和/或空字符和/或循环和/或跳转结合中间结点组成的不同路径。
在根据本发明的基于正则表达式的模式匹配方法的一些实施例中,规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
二元操作符对应的自动机结构包括起始结点、终止结点以及基于不同操作符在起始结点和终止结点之间由字符和/或空字符和/或分支结合中间结点组成的不同路径。
本发明的另一方面,还提供了一种基于正则表达式的模式匹配系统,其中包括:
表达式子类ICRE定义模块,该表达式子类ICRE定义模块配置为规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构;
匹配算法InferICRE定义模块,该匹配算法InferICRE定义模块配置为规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级;
自动机A构建模块,该自动机A构建模块配置为对于属于受限正则表达式子类ICRE的给定表达式E,按照模式匹配算法InferICRE中各类操作符对应的自动机结构为表达式E构建对应于表达式E的自动机A,其中对应于表达式E的自动机A的结构中具有从起始结点经中间结点到终止结点的至少一条路径;
字符串s匹配执行模块,该字符串s匹配执行模块配置为执行模式匹配时,对于任意选定的字符串s,从起始结点开始按照字符串s中字符顺序在对应于表达式E的自动机A中匹配中间结点;
模式匹配判定模块,该模式匹配判定模块配置为响应于能够为字符串s在对应于表达式E的自动机A中匹配到从起始结点到终止结点的路径,则字符串s被对应于表达式E的自动机A接收,从而符合表达式E的模式。
本发明的再一方面,还提供了一种计算机可读存储介质,存储有计算机程序指令,该计算机程序指令被执行时实现上述任一项根据本发明的基于正则表达式的模式匹配方法。
本发明的又一方面,还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该计算机程序被处理器执行时执行上述任一项根据本发明的基于正则表达式的模式匹配方法。
本发明至少具有以下有益技术效果:基于本发明的方法,提出一种基于受限正则表达式的模式匹配方法,该方法可应用于数据的模式匹配及模式发现,也可应用在其他模式分析领域,比如自然语言处理、形式语言理论等等;本发明的方法通过受限正则表达式来定义一个新的数据模式,同时考虑带数字和交互操作符,使其可以覆盖更多领域、更为广泛的数据,具有很好的泛化性能;同时将字符串与正则表达式子类的匹配问题转换为字符串是否被对应等价自动机接收问题,作为最后的匹配算法。基于本发明的方法,不仅满足表达式的字符串匹配问题,同时满足带数字和交互操作符的字符串匹配问题,可以覆盖更广范围的数据模式,具有更好的泛化性能,在实际中具有更高的应用价值。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
在图中:
图1示出了根据本发明的基于正则表达式的模式匹配方法的实施例的流程示意图;
图2示出了根据本发明的基于正则表达式的模式匹配方法的一元操作符{1}对应的自动机结构示意图;
图3示出了根据本发明的基于正则表达式的模式匹配方法的一元操作符{?}对应的自动机结构示意图;
图4示出了根据本发明的基于正则表达式的模式匹配方法的一元操作符{*}对应的自动机结构示意图;
图5示出了根据本发明的基于正则表达式的模式匹配方法的一元操作符{+}对应的自动机结构示意图;
图6示出了根据本发明的基于正则表达式的模式匹配方法的一元操作符{[m,n]}对应的自动机结构示意图;
图7示出了根据本发明的基于正则表达式的模式匹配方法的二元操作符{“,”}对应的自动机结构示意图;
图8示出了根据本发明的基于正则表达式的模式匹配方法的二元操作符{“|”}对应的自动机结构示意图;
图9示出了根据本发明的基于正则表达式的模式匹配方法的二元操作符{“&”}对应的自动机结构示意图;
图10示出了根据本发明的基于正则表达式的模式匹配方法的实施例的示例表达式E对应的示例自动机A的结构示意图;
图11示出了根据本发明的基于正则表达式的模式匹配系统的实施例的示意性框图;
图12示出了根据本发明的实现基于正则表达式的模式匹配方法的计算机可读存储介质的实施例的示意图;
图13示出了根据本发明的实现基于正则表达式的模式匹配方法的计算机设备的实施例的硬件结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
针对现有技术方案的不足,本发明提出了一种新的正则表达式子类ICRE(regularexpressions with counting and interleaving),以及基于该子类ICRE的模式匹配技术。子类ICRE同时考虑了带数字(counting,[m,n])和交互(interleaving,&)两种操作符。ICRE子类不受字符出现次数的限制,可以覆盖更多的数据模式,结构更加灵活,具有更好的泛化性能,在实际领域中具有更高的应用价值。
简单地说,本发明的构思基于新的正则表达式子类ICRE定义以及子类ICRE的模式匹配算法InferICRE。
为此,本发明的第一方面,提供了一种基于正则表达式的模式匹配方法100。图1示出了根据本发明的基于正则表达式的模式匹配方法的实施例的示意性框图。在如图1所示的实施例中,该方法包括:
步骤S110:规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构;
步骤S120:规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级;
步骤S130:对于属于受限正则表达式子类ICRE的给定表达式E,按照模式匹配算法InferICRE中各类操作符对应的自动机结构为表达式E构建对应于表达式E的自动机A,其中对应于表达式E的自动机A的结构中具有从起始结点经中间结点到终止结点的至少一条路径;
步骤S140:执行模式匹配时,对于任意选定的字符串s,从起始结点开始按照字符串s中字符顺序在对应于表达式E的自动机A中匹配中间结点;
步骤S150:响应于能够为字符串s在对应于表达式E的自动机A中匹配到从起始结点到终止结点的路径,则字符串s被对应于表达式E的自动机A接收,从而符合表达式E的模式。
总的来说,针对现有技术中存在的上述问题,本发明定义了受限正则表达式子类ICRE和相应的子类ICRE的模式匹配算法。具体地,首先在步骤S110中,规定受限正则表达式子类ICRE(regular expressions with interleaving and counting),其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构。即,设Σ是一个有限的字母表集合。定义在Σ上的表达式子类ICRE是一个链式结构。随后在步骤S120中,为在步骤S110中规定的受限正则表达式子类ICRE定义模式匹配算法InferICRE的各类操作符对应的自动机结构。在该模式匹配算法InferICRE中包含各种操作符,而在这之中一个重要的匹配原则是在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级。
由形式语言理论可知:任何一个正则表达式都可以转换为等价的非确定性有穷状态自动机NFA(Non-Deterministic Finite Automaton)。即对于任意一个表达式RE∈ICRE,存在一个NFA A,使得满足正则表达式RE对应的语言集合L(RE)=L(A),即二者描述完全相同的语言集合。因此匹配算法在此能够转换成为判断字符串s是否能够被自动机A接收的问题。如果s被A接收,则说明s匹配模式RE,否则s不符合模式RE。
因此,本发明首先通过将表达式E(E∈ICRE)转换为对应的自动机A,然后判断给定字符串s是否属于自动机A所表达的语言集合L(A),即字符串S是否被自动机A所接受,从而说明字符串s和表达式E的模式是匹配的。具体地,对于任意字符串s和子类表达式RE,如果InferICRE(s,RE)=True,则说明s∈L(RE),s符合模式RE。其中L(RE)表示正则表达式RE对应的语言集合。
为此,在步骤S130中将表达式E转换为自动机A,即对于表达式E∈ICRE,构建对应的自动机A。而对于不同的操作符,有不同的转换规则。具体地,对于属于受限正则表达式子类ICRE的给定表达式E,即表达式E(E∈ICRE),按照在步骤S120中规定的模式匹配算法InferICRE中各类操作符对应的自动机结构为表达式E构建对应于该表达式E的自动机A。从起始结点0开始,根据操作符及该操作符涉及的字符逐一构建随后的中间结点1、2、3……等,直至到达终止结点Z(Z大于等于1)。在构建完成的对应于表达式E的自动机A的结构中具有从起始结点经(可选地)中间结点到终止结点的至少一条路径。
然后在需要执行模式匹配时,在步骤S140中对于任意选定的字符串s,从起始结点0开始按照字符串s中字符顺序在对应于表达式E的自动机A中匹配中间结点。如果能够为字符串s在对应于表达式E的自动机A中匹配到从起始结点到终止结点的路径,则在步骤S150中证明该字符串s被对应于表达式E的自动机A接收,这意味着字符串s符合表达式E的模式,二者相匹配,即完成模式匹配。
在根据本发明的基于正则表达式的模式匹配方法100的一些实施例中,步骤S110:规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构进一步包括:
链式结构由交互操作符“&”以及连接操作符“,”链接。
进一步地,步骤S110:规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构还包括:
在有限字母表集合∑上,受限正则表达式子类ICRE的链式结构的形式为
f1 tf2 t,...,fn t,或
f1 t&f2 t&…&fn t,
其中t∈{1,?,*,+,[m,n]},fi为链式因子,其中每个链式因子fi的形式为
(a1 t|a2 t|…|an t),其中a∈∑*,
其中,Σ*表示字母表∑中任意字母的任意次数连接;“|”表示或操作符;“,”表示连接操作符;1表示出现一次;?表示出现0次或者1次;*表示出现次数为大于等于0次;+表示出现次数为大于等于1次;[m,n]表示出现次数最小为m次,最多为n次。
具体地说,规定受限正则表达式子类ICRE(regular expressions withinterleaving and counting),其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构。即,设Σ是一个有限的字母表集合。定义在Σ上的表达式子类ICRE是一个链式结构,由交互操作符(&)以及连接操作符(,)来链接。对于定义在Σ上的表达式子类ICRE,有两种形式结构:
f1 tf2 t,...,fn t,或
f1 t&f2 t&…&fn t,
其中操作符t∈{1,?,*,+,[m,n]},fi为链式因子。
每个链式因子fi的形式为:(a1 t|a2 t|…|an t),其中a∈∑*,操作符t∈{1,?,*,+,[m,n]},其中∑*表示字母表Σ中任意字母的任意次数连接;“|”表示或操作符;“,”表示连接操作符,通常可省略;1表示出现一次;?表示出现0次或者1次;*表示出现次数为大于等于0次;+表示出现次数为大于等于1次;[m,n]表示出现次数最小为m次,最多为n次。
此外,基于以上规定,操作符定义如下:
(a|b)={a,b};
(a,b)={ab};
a?={a,ε};
a*={ε,a,aa,…};
a+={a,aa,aaa,…};
(ab&cd)={abcd,acbd,cabd,cadb,cdab,acdb};
a[1,3]={a,aa,aaa}。
因此,由定义可以得知:例如E1=abc、E2=(a?|b+)&(a*|b*)、E3=(a?|b?)[1,2](a+|b+)[1,2]等均属于子类ICRE。
在根据本发明的基于正则表达式的模式匹配方法100的一些实施例中,步骤S120:规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
一元操作符包括{1,?,*,+,[m,n]},并且二元操作符包括{“|”,“,”,“&”}。
进一步地,步骤S120:规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级还包括:
在一元操作符中,对于任意字符连续出现的判断中,[m,n]具有高于+、*操作符的匹配优先级,并且二元操作符中优先级关系为“,”>“&”>“|”。
具体地说,对于模式匹配算法,各种操作符之间的优先级对于匹配过程非常重要。因此,在此规定优先级原则。其一,一元操作符优先二元操作符匹配。这里的一元操作符包括{1,?,*,+,[m,n]},二元操作符包括{“|”,“,”,“&”}。其二,在一元操作符中,对于任意字符串中的中的字符或者模式,如果其连续出现的次数k在带数字操作符的推断[m,n]的范围之内,则优先匹配带数字操作符[m,n],否则依次匹配操作符+、*。其三,在二元操作符中,优先级为“,”>“&”>“|”。
此外,在根据本发明的基于正则表达式的模式匹配方法100的一些实施例中,步骤S120:规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
一元操作符对应的自动机结构包括起始结点、终止结点以及基于不同操作符在起始结点和终止结点之间由字符和/或空字符和/或循环和/或跳转结合中间结点组成的不同路径。对于不同的操作符,有不同的转换规则。
图2至图6分别示出了一元操作符{1,?,*,+,[m,n]}对应的自动机结构的示意图。如图中所示,双圈结点表示最终的接收结点。一元操作符{1,?,*,+,[m,n]}。这里E1=E,ε表示接收空字符,m>1,且n≥m,其中分别根据不同的操作符结合中间结点包含字符和/或空字符和/或循环和/或跳转。图2示出了一元操作符{1}、即E1对应的自动机。图3示出了一元操作符{?}、即E?对应的自动机。图4示出了一元操作符{*}、即E*对应的自动机。图5示出了一元操作符{+}、即E+对应的自动机。图6示出了一元操作符{[m,n]}、即E[m,n]对应的自动机。
在根据本发明的基于正则表达式的模式匹配方法100的一些实施例中,步骤S120:规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
二元操作符对应的自动机结构包括起始结点、终止结点以及基于不同操作符在起始结点和终止结点之间由字符和/或空字符和/或分支结合中间结点组成的不同路径。对于不同的操作符,有不同的转换规则。
图7至图9分别示出了二元操作符{“,”,“|”,“&”}对应的自动机结构的示意图,分别对应三种情形:连接、或、交互。在此,a和b为字符表中的两个字符,其中分别根据不同的操作符结合中间结点包含字符和/或空字符和/或分支。图7示出了二元操作符{,}、即ab对应的自动机。图8示出了二元操作符{|}、即a|b对应的自动机。图9示出了二元操作符{&}、即a&b对应的自动机。
基于上述自动机结构,对于给定的字符串s,判断s是否可以被A接受,即是否通过可以到达自动机A的终止状态。例如,给定的字符串s=ab,对于图6和图8的自动机,均可以到达终止状态。图6中的模式匹配路径为{0123},图8中的模式匹配路径为{0,1,2,3,4,9},那么说明字符串s分别匹配图6中的表达式(E=ab)和图8中的表达式(E=a&b)。
为了清楚、完整、充分地公开本发明的模式匹配算法InferICRE,接下来结合一个具体实施例来描述本发明的匹配过程。请注意,以下旨在说明解释,不应被理解为对本发明的限制。
示例I:
对于给定的表达式E=a[2,3](b&c)(a?|b),字符串s=aabcb,考虑s是否能够匹配模式E。
由定义可知,E∈ICRE。构建表达式E=a[2,3](b&c)(a?|b)对应的自动机,其中,依次涉及一元操作符{[m,n]}(图6)、二元操作符{&}(图9)、一元操作符{?}(图3)及二元操作符{|}(图8)。最终构建出如图10所示的自动机,其中结点0为开始结点,16为终止结点。
将字符串s=aabcb按照字母前后顺序,判断在图10中的自动机结构中寻找的可接收路径。最终发现字符串s=aabcb可以被自动机A接收,路径为{0,1,2,1,2,3,4,5,6,11,14,15,16}。
由此可知,字符串s=aabcb匹配表达式E=a[2,3](b&c)(a?|b)。
综合根据本发明的前述实施例,提出了一种受限正则表达式的模式匹配方法,提出了一个新的正则表达式子类模式,不仅满足表达式的字符串匹配问题,同时满足带数字和交互操作符的字符串匹配问题。该模式可以覆盖更广范围的数据模式,具有更好的泛化性能,在实际中具有更高的应用价值。
本发明的第二方面,还提供了一种基于正则表达式的模式匹配系统200。图11示出了根据本发明的基于正则表达式的模式匹配系统200的实施例的示意性框图。如图11所示,该系统包括:
表达式子类ICRE定义模块210,该表达式子类ICRE定义模块210配置为规定受限正则表达式子类ICRE,其中在有限字母表集合上的受限正则表达式子类ICRE具有链式结构;
匹配算法InferICRE定义模块220,该匹配算法InferICRE定义模块220配置为规定受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级;
自动机A构建模块230,该自动机A构建模块230配置为对于属于受限正则表达式子类ICRE的给定表达式E,按照模式匹配算法InferICRE中各类操作符对应的自动机结构为表达式E构建对应于表达式E的自动机A,其中对应于表达式E的自动机A的结构中具有从起始结点经中间结点到终止结点的至少一条路径;
字符串s匹配执行模块240,该字符串s匹配执行模块240配置为执行模式匹配时,对于任意选定的字符串s,从起始结点开始按照字符串s中字符顺序在对应于表达式E的自动机A中匹配中间结点;
模式匹配判定模块250,该模式匹配判定模块250配置为响应于能够为字符串s在对应于表达式E的自动机A中匹配到从起始结点到终止结点的路径,则字符串s被对应于表达式E的自动机A接收,从而符合表达式E的模式。
本发明实施例的第三个方面,还提供了一种计算机可读存储介质,图12示出了根据本发明实施例提供的基于正则表达式的模式匹配方法的计算机可读存储介质的示意图。如图12所示,计算机可读存储介质300存储有计算机程序指令310,该计算机程序指令310可以被处理器执行。该计算机程序指令310被执行时实现上述任意一项实施例的方法。
应当理解,在相互不冲突的情况下,以上针对根据本发明的基于正则表达式的模式匹配方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的基于正则表达式的模式匹配系统和存储介质。
本发明实施例的第四个方面,还提供了一种计算机设备400,包括存储器420和处理器410,该存储器中存储有计算机程序,该计算机程序被该处理器执行时实现上述任意一项实施例的方法。
如图13所示,为本发明提供的执行基于正则表达式的模式匹配方法的计算机设备的一个实施例的硬件结构示意图。以如图13所示的计算机设备400为例,在该计算机设备中包括一个处理器410以及一个存储器420,并还可以包括:输入装置430和输出装置440。处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图13中以通过总线连接为例。输入装置430可接收输入的数字或字符信息,以及产生与基于正则表达式的模式匹配有关的信号输入。输出装置440可包括显示屏等显示设备。
存储器420作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的资源监控方法对应的程序指令/模块。存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储资源监控方法的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器410通过运行存储在存储器420中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的资源监控方法。
最后需要说明的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM(DRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据速率SDRAM(DDRSDRAM)、增强SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、以及直接Rambus RAM(DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
结合这里的公开所描述的各种示例性逻辑块、模块和电路可以利用被设计成用于执行这里功能的下列部件来实现或执行:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或晶体管逻辑、分立的硬件组件或者这些部件的任何组合。通用处理器可以是微处理器,但是可替换地,处理器可以是任何传统处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合DSP和/或任何其它这种配置。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种基于正则表达式的模式匹配方法,其特征在于,包括以下步骤:
规定受限正则表达式子类ICRE,其中在有限字母表集合上的所述受限正则表达式子类ICRE具有链式结构;
规定所述受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在所述模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级;
对于属于所述受限正则表达式子类ICRE的给定表达式E,按照所述模式匹配算法InferICRE中各类操作符对应的自动机结构为表达式E构建对应于所述表达式E的自动机A,其中所述对应于表达式E的自动机A的结构中具有从起始结点经中间结点到终止结点的至少一条路径;
执行模式匹配时,对于任意选定的字符串S,从起始结点开始按照所述字符串S中字符顺序在所述对应于表达式E的自动机A中匹配中间结点;
响应于能够为所述字符串s在所述对应于表达式E的自动机A中匹配到从起始结点到终止结点的路径,则所述字符串s被所述对应于表达式E的自动机A接收,从而符合所述表达式E的模式。
2.根据权利要求1所述的方法,其特征在于,所述规定受限正则表达式子类ICRE,其中在有限字母表集合上的所述受限正则表达式子类ICRE具有链式结构进一步包括:
所述链式结构由交互操作符“&”以及连接操作符“,”链接。
3.根据权利要求2所述的方法,其特征在于,所述规定受限正则表达式子类ICRE,其中在有限字母表集合上的所述受限正则表达式子类ICRE具有链式结构进一步包括:
在有限字母表集合∑上,所述受限正则表达式子类ICRE的链式结构的形式为
f1 tf2 t,...,fn t,或
f1 t&f2 t&…&fn t,
其中t∈{1,?,*,+,[m,n]},fi为链式因子,其中每个链式因子fi的形式为(a1 t|a2 t|…|an t),其中a∈∑*,
其中,∑*表示字母表∑中任意字母的任意次数连接;“|”表示或操作符;“,”表示连接操作符;1表示出现一次;?表示出现0次或者1次;*表示出现次数为大于等于0次;+表示出现次数为大于等于1次;[m,n]表示出现次数最小为m次,最多为n次。
4.根据权利要求2或3所述的方法,其特征在于,所述规定所述受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在所述模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
所述一元操作符包括{1,?,*,+,[m,n]},并且二元操作符包括{“|”,“,”,“&”}。
5.根据权利要求4所述的方法,其特征在于,所述规定所述受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在所述模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
在所述一元操作符中,对于任意字符连续出现的判断中,[m,n]具有高于+、*操作符的匹配优先级,并且所述二元操作符中优先级关系为“,”>“&”>“|”。
6.根据权利要求4所述的方法,其特征在于,所述规定所述受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在所述模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
所述一元操作符对应的自动机结构包括起始结点、终止结点以及基于不同操作符在所述起始结点和终止结点之间由字符和/或空字符和/或循环和/或跳转结合中间结点组成的不同路径。
7.根据权利要求1或2所述的方法,其特征在于,所述规定所述受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在所述模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级进一步包括:
所述二元操作符对应的自动机结构包括起始结点、终止结点以及基于不同操作符在所述起始结点和终止结点之间由字符和/或空字符和/或分支结合中间结点组成的不同路径。
8.一种基于正则表达式的模式匹配系统,其特征在于,包括:
表达式子类ICRE定义模块,所述表达式子类ICRE定义模块配置为规定受限正则表达式子类ICRE,其中在有限字母表集合上的所述受限正则表达式子类ICRE具有链式结构;
匹配算法InferICRE定义模块,所述匹配算法InferICRE定义模块配置为规定所述受限正则表达式子类ICRE的模式匹配算法InferICRE的各类操作符对应的自动机结构,其中在所述模式匹配算法InferICRE中一元操作符具有高于二元操作符的匹配优先级;
自动机A构建模块,所述自动机A构建模块配置为对于属于所述受限正则表达式子类ICRE的给定表达式E,按照所述模式匹配算法InferICRE中各类操作符对应的自动机结构为表达式E构建对应于所述表达式E的自动机A,其中所述对应于表达式E的自动机A的结构中具有从起始结点经中间结点到终止结点的至少一条路径;
字符串S匹配执行模块,所述字符串S匹配执行模块配置为执行模式匹配时,对于任意选定的字符串s,从起始结点开始按照所述字符串s中字符顺序在所述对应于表达式E的自动机A中匹配中间结点;
模式匹配判定模块,所述模式匹配判定模块配置为响应于能够为所述字符串S在所述对应于表达式E的自动机A中匹配到从起始结点到终止结点的路径,则所述字符串s被所述对应于表达式E的自动机A接收,从而符合所述表达式E的模式。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序指令,所述计算机程序指令被执行时实现如权利要求1-7任意一项所述的基于正则表达式的模式匹配方法。
10.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时执行如权利要求1-7任意一项所述的基于正则表达式的模式匹配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210966133.9A CN115292558B (zh) | 2022-08-12 | 2022-08-12 | 基于正则表达式的模式匹配方法、系统、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210966133.9A CN115292558B (zh) | 2022-08-12 | 2022-08-12 | 基于正则表达式的模式匹配方法、系统、存储介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115292558A true CN115292558A (zh) | 2022-11-04 |
CN115292558B CN115292558B (zh) | 2024-01-26 |
Family
ID=83827766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210966133.9A Active CN115292558B (zh) | 2022-08-12 | 2022-08-12 | 基于正则表达式的模式匹配方法、系统、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292558B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201836A (zh) * | 2007-09-04 | 2008-06-18 | 浙江大学 | 基于带记忆确定有限自动机的正则表达式匹配加速方法 |
CN105045808A (zh) * | 2015-06-08 | 2015-11-11 | 北京天元特通科技有限公司 | 一种复合规则集匹配方法和系统 |
CN112784127A (zh) * | 2021-03-12 | 2021-05-11 | 清华大学 | 多字符串模式匹配方法、装置、计算机设备及存储介质 |
CN114168808A (zh) * | 2021-11-22 | 2022-03-11 | 中核核电运行管理有限公司 | 基于正则表达式的文档字符串编码识别方法及装置 |
-
2022
- 2022-08-12 CN CN202210966133.9A patent/CN115292558B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101201836A (zh) * | 2007-09-04 | 2008-06-18 | 浙江大学 | 基于带记忆确定有限自动机的正则表达式匹配加速方法 |
CN105045808A (zh) * | 2015-06-08 | 2015-11-11 | 北京天元特通科技有限公司 | 一种复合规则集匹配方法和系统 |
CN112784127A (zh) * | 2021-03-12 | 2021-05-11 | 清华大学 | 多字符串模式匹配方法、装置、计算机设备及存储介质 |
CN114168808A (zh) * | 2021-11-22 | 2022-03-11 | 中核核电运行管理有限公司 | 基于正则表达式的文档字符串编码识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115292558B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102857493A (zh) | 内容过滤方法和装置 | |
CN104899264B (zh) | 一种多模式正则表达式匹配方法及装置 | |
KR101311031B1 (ko) | 검증 블룸 필터를 포함하는 멀티 블룸 필터 | |
TWI844091B (zh) | 特徵匹配規則構建、特徵匹配方法、裝置、設備及介質 | |
CN110554877A (zh) | 一种json数据解析方法、装置、设备及储存介质 | |
Fampa et al. | An overview of exact algorithms for the Euclidean Steiner tree problem in n‐space | |
Chepurnoy et al. | Self-reproducing coins as universal turing machine | |
US20220391663A1 (en) | Defect location method and device based on coverage information | |
CN112651197A (zh) | 电路划分预处理的方法及门级电路并行仿真的方法 | |
Alon et al. | Finding a Hamilton cycle fast on average using rotations and extensions | |
CN115292558A (zh) | 基于正则表达式的模式匹配方法、系统、存储介质及设备 | |
CN116107800B (zh) | 一种校验码生成方法、数据恢复方法、介质、电子设备 | |
KR102098255B1 (ko) | 지식 임베딩 기반 지식 보강 시스템 및 방법 | |
US8626688B2 (en) | Pattern matching device and method using non-deterministic finite automaton | |
CN110765730A (zh) | 一种组合逻辑电路简化方法 | |
CN114741993B (zh) | 一种基于脚本的数据流图生成方法及装置 | |
US20160301658A1 (en) | Method, apparatus, and computer-readable medium for efficient subnet identification | |
CN113553844B (zh) | 一种基于前缀树特征与卷积神经网络的领域识别方法 | |
Mizumoto et al. | An efficient query learning algorithm for zero-suppressed binary decision diagrams | |
Clifford et al. | Pattern matching in multiple streams | |
Okhotin | Automaton representation of linear conjunctive languages | |
Tokuhara et al. | Using label information in a genetic programming based method for acquiring block preserving outerplanar graph patterns with wildcards | |
Clifford et al. | Tight cell-probe bounds for online hamming distance computation | |
Bu et al. | Learning Disentangled Representation of Web Address via Convolutional-Recurrent Triplet Network for Classifying Phishing URLs | |
CN113704465B (zh) | 文本聚类方法及装置、电子设备、存储介质 |
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 |