应用系统参数的正则表达式生成和合法性校验方法及装置制造方法及图纸

技术编号:34615751 阅读:18 留言:0更新日期:2022-08-20 09:22
本说明书的实施例提供应用系统参数的正则表达式生成方法和合法性校验方法及装置。在为应用系统的参数生成正则表达式时,从应用系统的历史应用程序实现中获取各个方法代码块中的各个参数的参数值。针对每个方法代码块中的各个参数,分别从对应的参数值中提取出共性信息。随后,针对各个方法代码块中的各个参数,分别根据所提取的共性信息生成对应的正则表达式。达式。达式。

【技术实现步骤摘要】
应用系统参数的正则表达式生成和合法性校验方法及装置


[0001]本说明书实施例通常涉及计算机
,尤其涉及用于为应用系统的参数生成正则表达式的方法及装置,用于为应用系统的参数进行合法性校验的方法及装置,以及用于为应用系统的参数进行合法性校验的系统。

技术介绍

[0002]应用系统可以利用应用程序代码实现,并且所实现的应用程序代码中具有独立功能的代码块可以被组织为方法(method)来实现特定功能。每个用于实现特定功能的method可以包括多种参数,在进行代码实现(代码编写)时可以为各个参数赋值,即,进行参数配置。此外,在应用系统已经被实现为应用程序代码的情况下,也可以对已经实现的应用程序代码中的参数配置数据进行调整来优化应用系统或调整应用系统的应用场景。在应用系统运行时,如果需要执行某个功能,则可以调用应用程序中的对应方法来实现该功能。
[0003]方法中的参数配置需要符合规范。一旦所配置的参数不符合规范,则应用系统调用该方法时会发生操作失败并且报错。针对参数配置是否符合规范的判断,目前采用的方式通常是通过运行应用系统来调用对应方法,并根据应用系统是否报错来判断。如果每次需要等到应用系统报错才能识别出方法参数不符合规范,则会增加时间成本和计算成本。随着应用系统的逐渐增大,应用系统中的方法数量也逐渐增多,这个问题会对应用系统的性能产生非常大的不利影响。
[0004]为了解决上述问题,提出了基于正则表达式的参数合法性校验方法。所使用的正则表达式基于参数的历史参数配置数据的原始数据直接生成,并且每条参数配置数据生成一个正则表达式。然而,在应用系统应用于业务场景时,所使用的参数数量非常大,并且对应的参数内容多样化。在这种情况下,如果基于每个参数的每条参数配置数据生成一条正则表达式,则所生成的正则表达式数量会非常多,不利于后期校验。而且,由于参数配置数据的原始数据比较长,从而使得所生成的正则表达式也会比较长,由此导致进行参数合法性校验时的匹配复杂度增加。

技术实现思路

[0005]鉴于上述,本说明书实施例提供针对应用系统的参数的正则表达式生成方案以及基于该正则表达式生成方案所生成的正则表达式进行的参数合法性校验方案。利用该正则表达式生成方案,针对应用系统的各个方法中的每个参数,可以从该参数的历史配置数据中提取出共性信息,并且基于共性信息来生成该参数的正则表达式,而不是基于每个参数的每条参数配置数据生成一条正则表达式,从而减少每个参数所对应的正则表达式数目,同时缩短所生成的正则表达式的长度,由此降低参数合法性校验时的匹配复杂度。
[0006]根据本说明书实施例的一个方面,提供一种用于为应用系统的参数生成正则表达式的方法,包括:从应用系统的历史应用程序实现中获取各个方法代码块中的各个参数的参数值;针对每个方法代码块中的各个参数,分别从对应的参数值中提取出共性信息;以及
针对各个方法代码块中的各个参数,分别根据所提取的共性信息生成对应的正则表达式。
[0007]可选地,在上述方面的一个示例中,针对每个方法代码块中的各个参数,分别从对应的参数值中提取出共性信息可以包括:针对每个方法代码块中的各个参数,分别对该参数的参数值进行参数格式解析来确定该参数的参数类别,每种参数类别对应一种信息提取方式;以及针对每个参数的每个参数类别,采用与该参数类别对应的信息提取方式,从该参数的具有该参数类别的参数值中提取出与该参数类别对应的共性信息。
[0008]可选地,在上述方面的一个示例中,每个参数类别具有对应的模板样式,所述模板样式包括模板信息组成以及每个模板信息的记录格式。针对每个参数的每个参数类别,采用与该参数类别对应的信息提取方式,从该参数的具有该参数类别的参数值中提取出与该参数类别对应的共性信息可以包括:针对每个参数的每个参数类别,分别按照对应的模板样式对该参数的具有该参数类别的参数值进行模板提取,所提取出的模板样式中的模板信息作为与该参数类别对应的共性信息。针对各个方法代码块中的各个参数,分别根据所提取的共性信息生成对应的正则表达式可以包括:针对各个方法代码块中的各个参数所对应的每个模板,根据该模板的模板信息生成对应的正则表达式。
[0009]可选地,在上述方面的一个示例中,每个参数类别具有对应的正则表达式生成方式。针对各个方法代码块中的各个参数所对应的每个模板,根据该模板的模板信息生成对应的正则表达式可以包括:针对各个方法代码块中的各个参数所对应的每个模板,按照与该参数的参数类别对应的正则表达式生成方式来根据该模板的模板信息生成对应的正则表达式。
[0010]可选地,在上述方面的一个示例中,所述参数类别包括参数值的所有参数内容可被格式解析的第一类别、参数值的所有参数内容不可被格式解析的第二类别以及参数值的部分参数内容可被格式解析但部分参数内容不可被格式解析的第三类别。针对每个参数的每个参数类别,采用与该参数类别对应的信息提取方式,从该参数的具有该参数类别的参数值中提取出与该参数类别对应的共性信息可以包括:响应于该参数类别为第一类别,按照与所述第一类别对应的信息提取方式,从该参数的具有所述第一类别的参数值中提取出共性信息,响应于该参数类别为第二类别,按照与所述第二类别对应的信息提取方式,从该参数的具有所述第二类别的参数值中提取出共性信息,响应于该参数类别为第三类别,将该参数的具有第三类别的各个参数值分为所具有的参数类别为所述第一类别的第一参数部分以及所具有的参数类别为所述第二类别的第二参数部分,并且按照与所述第一类别对应的信息提取方式,从各个第一参数部分中提取出共性信息,以及按照与所述第二类别对应的信息提取方式,从各个第二参数部分中提取出共性信息。
[0011]可选地,在上述方面的一个示例中,所述参数类别包括参数值的所有参数内容可被格式解析的第一类别、参数值的所有参数内容不可被格式解析的第二类别以及参数值的部分参数内容可被格式解析但部分参数内容不可被格式解析的第三类别。针对各个方法代码块中的各个参数所对应的每个模板,根据该模板的模板信息来按照与该参数的参数类别对应的正则表达式生成方式生成对应的正则表达式可以包括:针对所对应参数的参数类别为第一类别的模板,按照与所述第一类别对应的正则表达式生成方式来基于该模板的模板信息生成正则表达式,针对所对应参数的参数类别为第二类别的模板,按照与所述第二类别对应的正则表达式生成方式来基于该模板的模板信息生成正则表达式,针对所对应参数
的参数类别为第三类别的模板,按照与所述第一类别对应的正则表达式生成方式来基于该模板的模板信息中的根据与所述第一类别对应的信息提取方式提取的模板信息生成第一正则表达式,按照与所述第二类别对应的正则表达式生成方式来基于该模板的模板信息中的根据与所述第二类别对应的信息提取方式提取的模板信息生成第二正则表达式,并且将所得到的第一正则表达式和第二正则表达式两两组合,得到该模板所对应的正则表达式。
[0012]可选地,在上述方面的一个示例中,所述格式解析包括json格式解析。针对所对应参数的参数类别为第二类别的模板,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于为应用系统的参数生成正则表达式的方法,包括:从应用系统的历史应用程序实现中获取各个方法代码块中的各个参数的参数值;针对每个方法代码块中的各个参数,分别从对应的参数值中提取出共性信息;以及针对各个方法代码块中的各个参数,分别根据所提取的共性信息生成对应的正则表达式。2.如权利要求1所述的方法,其中,针对每个方法代码块中的各个参数,分别从对应的参数值中提取出共性信息包括:针对每个方法代码块中的各个参数,分别对该参数的参数值进行参数格式解析来确定该参数的参数类别,每种参数类别对应一种信息提取方式;以及针对每个参数的每个参数类别,采用与该参数类别对应的信息提取方式,从该参数的具有该参数类别的参数值中提取出与该参数类别对应的共性信息。3.如权利要求2所述的方法,其中,每个参数类别具有对应的模板样式,所述模板样式包括模板信息组成以及每个模板信息的记录格式,针对每个参数的每个参数类别,采用与该参数类别对应的信息提取方式,从该参数的具有该参数类别的参数值中提取出与该参数类别对应的共性信息包括:针对每个参数的每个参数类别,分别按照对应的模板样式来对该参数的具有该参数类别的参数值进行模板提取,所提取的模板样式中的模板信息作为与该参数类别对应的共性信息,针对各个方法代码块中的各个参数,分别根据所提取的共性信息生成对应的正则表达式包括:针对各个方法代码块中的各个参数所对应的每个模板,根据该模板的模板信息生成对应的正则表达式。4.如权利要求3所述的方法,其中,每个参数类别具有对应的正则表达式生成方式,针对各个方法代码块中的各个参数所对应的每个模板,根据该模板的模板信息生成对应的正则表达式包括:针对各个方法代码块中的各个参数所对应的每个模板,按照与该参数的参数类别对应的正则表达式生成方式来根据该模板的模板信息生成对应的正则表达式。5.如权利要求2所述的方法,其中,所述参数类别包括参数值的所有参数内容可被格式解析的第一类别、参数值的所有参数内容不可被格式解析的第二类别以及参数值的部分参数内容可被格式解析但部分参数内容不可被格式解析的第三类别,针对每个参数的每个参数类别,采用与该参数类别对应的信息提取方式,从该参数的具有该参数类别的参数值中提取出与该参数类别对应的共性信息包括:响应于该参数类别为第一类别,按照与所述第一类别对应的信息提取方式,从该参数的具有所述第一类别的参数值中提取出共性信息,响应于该参数类别为第二类别,按照与所述第二类别对应的信息提取方式,从该参数的具有所述第二类别的参数值中提取出共性信息,响应于所确定的参数类别为第三类别,将该参数的具有所述第三类别的各个参数值分为所具有的参数类别为所述第一类别的第一参数部分以及所具有的参数类别为所述第二类别的第二参数部分,并且按照与所述第一类别对应的信息提取方式,从各个第一参数部
分中提取出共性信息,以及按照与所述第二类别对应的信息提取方式,从各个第二参数部分中提取出共性信息。6.如权利要求4所述的方法,其中,所述参数类别包括参数值的所有参数内容可被格式解析的第一类别、参数值的所有参数内容不可被格式解析的第二类别以及参数值的部分参数内容可被格式解析但部分参数内容不可被格式解析的第三类别,针对各个方法代码块中的各个参数所对应的每个模板,根据该模板的模板信息来按照与该参数的参数类别对应的正则表达式生成方式生成对应的正则表达式包括:针对所对应参数的参数类别为第一类别的模板,按照与所述第一类别对应的正则表达式生成方式来基于该模板的模板信息生成正则表达式,针对所对应参数的参数类别为第二类别的模板,按照与所述第二类别对应的正则表达式生成方式来基于该模板的模板信息生成正则表达式,针对所对应参数的参数类别为第三类别的模板,按照与所述第一类别对应的正则表达式生成方式来基于该模板的模板信息中的根据与所述第一类别对应的信息提取方式提取的模板信息生成第一正则表达式,按照与所述第二类别对应的正则表达式生成方式来基于该模板的模板信息中的根据与所述第二类别对应的信息提取方式提取的模板信息生成第二正则表达式,并且将所得到的第一正则表达式和第二正则表达式两两组合,得到该模板所对应的正则表达式。7.如权利要求6所述的方法,其中,所述格式解析包括json格式解析,针对所对应参数的参数类别为第二类别的模板,按照与所述第二类别对应的正则表达式生成方式来基于该模板的模板信息生成正则表达式包括:针对所对应参数的参数类别为第二类别的模板,采用双指针访问方式来从该模板的模板信息中获取字符型值和数字型值,以及按照与所述第二类别对应的正则表达式生成方式来基于所获取的字符型值和数字型值生成正则表达式。8.如权利要求1到7中任一所述的方法,还包括:将所生成的正则表达式与方法代码块和参数两者相关联的方式存储到正则表达式数据库中。9.一种用于校验应用系统的参数合法性的方法,包括:拦截应用系统的待校验参数的参数值,所述待校验参数是所述应用系统的指定方法代码块中的参数;从正则表达式数据库中获取所述待校验参数所对应的正则表达式,所述正则表达式按照如权利要求8所述的方法生成;根据所拦截的参数值以及所获取的正则表达式进行参数合法性校验,其中,响应于所拦截的参数值匹配所获取的正则表达式,确定所述待校验参数是合法参数,以及响应于所拦截的参数值不匹配所获取的正则表达式,确定所述待校验参数是不合法参数。10.一种用于为应用系统的参数生成正则表达式的装置,包括:参数值获取单元,从应用系统的历史应用程序实现中获取各个方法代码块中的各个参数的参数值;
共性信息提取单元,针对每个方法代码块中的各个参数,分别从对应的参数值中提取出共性信息;以及正则表达式生成单元,针对各个方法代码块中的各个参数,分别根据所提取的共性信息生成对应的正则表达式。...

【专利技术属性】
技术研发人员:柴炳旭蒋炜李建国俞灏宣
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1