一种规则表达式匹配方法、装置及计算机可读存储介质与流程

文档序号:34106552发布日期:2023-05-10 20:21阅读:26来源:国知局
一种规则表达式匹配方法、装置及计算机可读存储介质与流程

本发明属于特征匹配领域,具体涉及一种规则表达式匹配方法、装置及计算机可读存储介质。


背景技术:

1、本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

2、现有技术中的匹配装置一部分采用行列表方式,无法配置较复杂的规则表达式模式,扩展性和灵活性较低。另一部分装置采用规则表达式方式,但是对于规则表达式是否满足既定语法,往往采用文本字符解析硬编码方式、或者正则匹配(正则匹配算法是基于有限状态机,无法针对无限个需要计算元素进行运算)。这些校验方式仅适用于简单场景,无法对规则表达式模式的所有组合场景进行完备性校验。对于业务配置的规则表达式,缺少有效等价谓词运算,将用户配置的规则表达式化简为最简表达式,缺少识别规则表达式公共片段,影响后续匹配效率。

3、因此,如何提升匹配效率是一个亟待解决的问题。


技术实现思路

1、针对上述现有技术中存在的问题,提出了一种规则表达式匹配方法、装置及计算机可读存储介质,利用这种方法、装置及计算机可读存储介质,能够解决上述问题。

2、本发明提供了以下方案。

3、第一方面,提供一种规则表达式匹配方法,包括:接收规则文本串,对规则文本串进行语法校验,输出规则表达式;基于循环二进制码的化简算法,将规则表达式无损转换为最简规则表达式;基于谓词演算算法将最简规则表达式等价转化为规则表达式匹配树;将多个规则表达式匹配树合并为合并匹配网络,并识别出公共规则片段;利用合并匹配网络和公共规则片段对待匹配数据进行特征匹配。

4、在一种实施方式中,基于循环二进制码的化简算法,将所述规则表达式无损转换为最简规则表达式,还包括:获取所述规则表达式中的全部关键要素,基于每个关键要素的正反取值生成所述多个关键要素的全部组合;从全部组合中获取使所述规则表达式为真的的组合取值范围,并获取所述组合取值范围的二进制码组合;对所述二进制码组合中的多个二进制码进行同位循环二进制码合并,得到简化二进制码组合;将所述简化二进制码组合中的各个二进制位转化回所述关键要素,输出所述最简规则表达式。

5、在一种实施方式中,对所述多个二进制码进行同位循环二进制码合并,包括:将所述二进制码组合中的二进制码进行两两比较,合并生成新二进制码;将所述新二进制码和未能合并的原有二进制码进行两两比较,合并生成新二进制码并去除重复二进制码;重复循环上述合并步骤,直至无法再次合并生成新二进制数为止。

6、在一种实施方式中,所述同位循环二进制码合并,还包括:当两个二进制码仅存在一个不同的二进制位时,将该不同的二进制位设为设定符号,并保持其余相同的二进制位不变,作为新二进制码。

7、在一种实施方式中,所述简化二进制码组合中的各个二进制位转化回所述关键要素,包括:针对简化二进制码组合中的每个二进制码,按照二进制位的位置转化为对应的关键要素;根据每个二进制位的取值对所述关键要素进行取非操作或不取非操作;以及,若所述二进制码中包括取值为所述设定符号的二进制位,则忽略对应的关键要素。

8、在一种实施方式中,对所述规则文本串进行语法校验,还包括:利用上下文无关文法和递归下降算法,对所述规则文本串进行完备性语法校验。

9、在一种实施方式中,对所述规则文本串进行语法校验,还包括:读入所述规则文本串,按照预定分隔符分割所述规则文本串,得到多个词素;按照所述规则文本串中的词素顺序,对每个词素进行排序,生成词法单元序列;遍历所述词法单元序列,校验所述规则文本串的语法。

10、在一种实施方式中,所述词素分为关键要素类型和逻辑运算类型。

11、在一种实施方式中,将所述最简规则表达式等价转化为规则表达式匹配树;还包括:重复执行以下一种或多种谓词推演算法直至稳定,得到所述规则表达式匹配树:获取所述最简规则表达式对应的规则树;若所述规则树的非运算的子节点有多个,则将所述非运算下推到子节点中,并将与运算符和或运算符互换;若所述最简规则表达式的当前运算符与父节点运算符一致,则将当前运算符的子节点上移,并删除当前运算符;针对同一层叶子节点,按照节点唯一属性排序。

12、在一种实施方式中,将多个所述规则表达式匹配树合并为合并匹配网络,并识别出公共规则片段,包括:选择一个规则表达式匹配树进行上下转置,将规则表达式匹配树方规则标识为根节点,作为所述合并匹配网络的初始状态;逐个遍历其他的规则表达式匹配树进行上下转置,并逐个融合进所述合并匹配网络中;遍历完成后,形成完整的合并匹配网络,并提取出公共规则片段。

13、在一种实施方式中,逐个融合进所述合并匹配网络,还包括:对于单个规则表达式匹配树中的要素节点,新增或复用所述合并匹配网络中的要素节点;和/或,对于单个规则表达式匹配树中的逻辑符节点,新增或复用所述合并匹配网络中的逻辑符节点;和/或,对于完全重合的逻辑符节点,通过反向搜索可提取出所述公共规则片段及其所属规则表达式匹配树;和/或,对于部分重合的逻辑符节点,拆分所述合并匹配网络中逻辑符节点。

14、在一种实施方式中,利用所述合并匹配网络和公共规则片段对待匹配数据进行特征匹配,包括:预先为所述合并匹配网络中的各个规则标识进行优先级排序;依据所述优先级依序将合并匹配网络中的每个规则标识所涉及的要素集合与所述待匹配数据进行匹配,直至匹配成功或匹配结束。

15、在一种实施方式中,利用所述合并匹配网络和公共规则片段对待匹配数据进行特征匹配,包括以下中的一种或多种操作:将所述待匹配数据与每个规则标识所涉及规则表达式匹配树的要素节点集合进行匹配,从所述合并匹配网络的入口进入,如果匹配到所述规则表达式匹配树的要素节点,则缓存要素匹配结果。

16、在一种实施方式中,利用所述合并匹配网络和公共规则片段对待匹配数据进行特征匹配,还包括:如果匹配到所述规则表达式匹配树的逻辑节点,则在缓存中查询所述逻辑节点的父要素节点是否已命中,其中:如无缓存结果,则从所述要素节点集合取下一个要素节点,与待匹配数据进行匹配;如有缓存结果,则直接取所述缓存结果进行逻辑运算;并且,如所述逻辑节点属于公共规则片段,则缓存逻辑匹配结果。

17、在一种实施方式中,利用所述合并匹配网络和公共规则片段对待匹配数据进行特征匹配,还包括:如果匹配到所述规则表达式匹配树的规则标识节点,则返回命中的规则标识。

18、第二方面,提供一种规则表达式匹配装置,其特征在于,被配置为用于执行如权利要求1-13中任一项所述的方法,该装置包括:语法校验器,用于接收规则文本串,对所述规则文本串进行语法校验,输出规则表达式;特征转换器,用于基于循环二进制码的化简算法,将所述规则表达式无损转换为最简规则表达式;谓词演算器,用于基于谓词演算算法将所述最简规则表达式等价转化为规则表达式匹配树;网络合并器,用于将多个规则表达式匹配树合并为合并匹配网络,并识别出公共规则片段;特征匹配器,用于利用所述合并匹配网络和公共规则片段对待匹配数据进行特征匹配。

19、第三方面,提供一种规则表达式匹配装置,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:如第一方面的方法。

20、第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行如第一方面的方法。

21、上述实施方式的优点之一,能够显著提高匹配效率。

22、本发明的其他优点将配合以下的说明和附图进行更详细的解说。

23、应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1