[发明专利]一种YAML和下推自动机的正则表达式扩展方法和系统在审
申请号: | 202210439527.9 | 申请日: | 2022-04-25 |
公开(公告)号: | CN114840723A | 公开(公告)日: | 2022-08-02 |
发明(设计)人: | 顾士豪 | 申请(专利权)人: | 杭州笨马网络技术有限公司 |
主分类号: | G06F16/903 | 分类号: | G06F16/903;G06F16/901 |
代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 张解翠 |
地址: | 310000 浙江省杭州市余杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 yaml 下推自动机 正则 表达式 扩展 方法 系统 | ||
1.一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述方法包括:
在YAML中输入预制命令和节点,构建YAML正则匹配树,根据所述正则匹配树生成正则匹配器;
所述节点包括变量定义节点、变量引用节点和变量表达节点,将所述变量定义节点和变量引用节点建立链接;
通过所述正则匹配器递归匹配预制的节点,根据所述节点类型执行预制命令;
构建下推匹配逻辑,若当前节点匹配成功,根据下推匹配逻辑和预制命令执行当前节点的和当前子节点的匹配状态维护;
读取所有匹配成功的变量表达节点内容,根据所述内容从语言自身的正则表达式库调用对应的正则表达式。
2.根据权利要求1所述的一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述方法包括:采用正则编译器从YAML正则匹配树中读取模块化正则表达式数据,并将所述模块化的正则表达式数据存储到内存中转化为对应的正则匹配模型,进一步利用正则匹配器读取文本和所述正则匹配模型进行匹配。
3.根据权利要求1所述的一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述预制的节点还包括逻辑非节点,其中所述非逻辑节点配置非逻辑,在所述非逻辑节点获取正则表达式匹配结果,若匹配结果为不匹配,则执行非逻辑节点下层节点的匹配。
4.根据权利要求1所述的一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述预制节点还包括other逻辑节点,当所有同层级的节点的正则匹配结果均为假时,所述other逻辑节点结果为真,进一步递归匹配所述other逻辑节点下层子节点的正则匹配操作,否则执行其他同层级节点正则匹配结果为真节点对应子节点的正则匹配。
5.根据权利要求1所述的一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述预制的节点还包括root节点,其中所述root节点为所述正则匹配树的根节点,根据所述root节点启动正则匹配器的每一层节点正则匹配操作。
6.根据权利要求1所述的一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述预制节点还包括不同back逻辑节点,其中所述back逻辑节点用于构建不同层级的循环匹配,配置back逻辑节点的整数值,所述整数值代表当前节点跳回的层级,根据当前back逻辑节点的整数值跳转到对应层级的节点执行正则匹配操作。
7.根据权利要求1所述的一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述方法包括:利用next结构构建每一节点的下推结构,获取变量定义节点、变量引用节点、变量表达节点、other逻辑节点和back逻辑节点的变量值或保留字,通过所述next结构执行下一层级对应节点的规则或正则匹配。
8.根据权利要求7所述的一种YAML和下推自动机的正则表达式扩展方法,其特征在于,所述方法包括,对每个节点配置唯一标识,获取节点类型,配置每一节点的更新范围,根据所述next结构进行每一层级的更新时,判断当前节点唯一标识是否在更新范围内,若是则执行当前节点的更新。
9.一种YAML和下推自动机的正则表达式扩展系统,其特征在于,所述系统执行权利要求1-8中任意一项所述的一种YAML和下推自动机的正则表达式扩展方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行权利要求1-8中任意一项所述的一种YAML和下推自动机的正则表达式扩展方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州笨马网络技术有限公司,未经杭州笨马网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210439527.9/1.html,转载请声明来源钻瓜专利网。