公式规范性校验方法及装置制造方法
【专利摘要】本发明公开了一种公式规范性校验方法及装置。该公式规范性校验方法包括:获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素;按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则;如果多个待校验元素中每一个待校验元素均符合预设规则,则确定待校验公式为规范的公式。通过本发明,解决了对公式的规范性进行校验时效率低的问题,进而通过依次判断多个待校验元素中每一个待校验元素是否符合预设规则,并在多个待校验元素中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式,达到了提高校验公式规范性的效率的效果。
【专利说明】公式规范性校验方法及装置
【技术领域】
[0001] 本发明涉及数据处理领域,具体而言,涉及一种公式规范性校验方法及装置。
【背景技术】
[0002] 公式通常包含运算符(例如" + ")、函数、参与运算的操作数和括号等。对于用户 自定义的公式,在录入查询系统后,可能会因为公式本身的不规范导致无法实现查询获取。 因此,有必要保证用户自定义的公式能够和相应的查询相匹配,即公式及其涉及的每一个 元素都能够在查询时进行正确的解析。
[0003] 现有的公式规范性校验往往是通过人工来完成,该方法校验效率低,并且准确性 较差。
[0004] 针对相关技术中对公式的规范性进行校验时效率低的问题,目前尚未提出有效的 解决方案。
【发明内容】
[0005] 本发明的主要目的在于提供一种公式规范性校验方法及装置,以解决对公式的规 范性进行校验时效率低的问题。
[0006] 为了实现上述目的,根据本发明的一个方面,提供了一种公式规范性校验方法。
[0007] 根据本发明的公式规范性校验方法包括:获取待校验公式,其中,待校验公式包 括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排 列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元 素;按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校 验元素是否符合预设规则;如果多个待校验元素中每一个待校验元素均符合预设规则,则 确定待校验公式为规范的公式。
[0008] 进一步地,在依次判断多个待校验元素中每一个待校验元素是否符合预设规则之 前,该方法还包括:将待校验公式进行拆分,获取多个待校验元素;按照从待校验公式的首 元素到尾元素的次序,将多个待校验元素存储在预设数组中,按照从待校验公式的首元素 到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则包括: 判断预设数组中的元素排列是否符合预设规则。
[0009] 进一步地,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元 素中每一个待校验元素是否符合预设规则包括:判断待校验公式中的首元素是否为操作 数、表达式或者函数,其中,如果待校验公式中的首元素不是操作数、表达式或者函数,则确 定待校验公式为不规范的公式;判断待校验公式中为操作数、表达式或者函数的待校验元 素紧邻的待校验元素是否为操作符,其中,如果待校验公式中为操作数、表达式或者函数的 待校验元素紧邻的待校验元素不是操作符,则确定待校验公式为不规范的公式;判断待校 验公式中的尾元素是否为操作数、表达式或者函数,其中,如果待校验公式中的尾元素不是 操作数、表达式或者函数,则确定待校验公式为不规范的公式。
[0010] 进一步地,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元 素中每一个待校验元素是否符合预设规则包括:判断多个待校验元素中是否包含左括号; 如果多个待校验元素中包含左括号,则判断在待校验公式中排列在左括号之后的待校验元 素中是否包含右括号,其中,如果在待校验公式中排列在左括号之后的待校验元素中不包 含右括号,则确定待校验公式为不规范的公式。
[0011] 进一步地,在判断多个待校验元素中是否包含左括号之后,该方法还包括:如果多 个待校验元素中包含左括号,则记录左括号的个数,判断在待校验公式中排列在左括号之 后的待校验元素中是否包含右括号之后,方法还包括:如果在待校验公式中排列在左括号 之后的待校验元素中包含右括号,则记录右括号的个数,其中,如果左括号的个数与右括号 的个数不相等,则确定待校验公式为不规范的公式。
[0012] 进一步地,待校验公式中包含括号,括号中包含待校验元素,按照从待校验公式的 首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则 包括:判断括号是否符合预设规则;在判断出括号符合预设规则之后,判断括号内的待校 验元素是否符合预设规则。
[0013] 为了实现上述目的,根据本发明的另一方面,提供了一种公式规范性校验装置。
[0014] 根据本发明的公式规范性校验装置包括:第一获取单元,用于获取待校验公式,其 中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个 待校验元素中排列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验 公式最末端的元素;判断单元,用于按照从待校验公式的首元素到尾元素的次序,依次判断 多个待校验元素中每一个待校验元素是否符合预设规则;确定单元,用于在多个待校验元 素中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式。
[0015] 进一步地,该装置还包括:第二获取单元,用于将待校验公式进行拆分,获取多个 待校验元素;以及存储单元,用于按照从待校验公式的首元素到尾元素的次序,将多个待校 验元素存储在预设数组中,判断单元,还用于判断预设数组中的元素排列是否符合预设规 则。
[0016] 进一步地,判断单元包括:第一判断模块,用于判断待校验公式中的首元素是否为 操作数、表达式或者函数,其中,如果待校验公式中的首元素不是操作数、表达式或者函数, 则确定待校验公式为不规范的公式;第二判断模块,用于判断待校验公式中为操作数、表达 式或者函数的待校验元素紧邻的待校验元素是否为操作符,其中,如果待校验公式中为操 作数、表达式或者函数的待校验元素紧邻的待校验元素不是操作符,则确定待校验公式为 不规范的公式;第三判断模块,用于判断待校验公式中的尾元素是否为操作数、表达式或者 函数,其中,如果待校验公式中的尾元素不是操作数、表达式或者函数,则确定待校验公式 为不规范的公式。
[0017] 进一步地,判断单元包括:第四判断模块,用于判断多个待校验元素中是否包含左 括号;第五判断模块,用于在多个待校验元素中包含左括号时,判断在待校验公式中排列在 左括号之后的待校验元素中是否包含右括号,其中,如果在待校验公式中排列在左括号之 后的待校验元素中不包含右括号,则确定待校验公式为不规范的公式。
[0018] 通过本发明,采用包括如下步骤的方法:获取待校验公式,其中,待校验公式包括 多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排列 在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元 素;按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校 验元素是否符合预设规则;如果多个待校验元素中每一个待校验元素均符合预设规则,则 确定待校验公式为规范的公式,解决了对公式的规范性进行校验时效率低的问题,进而通 过依次判断多个待校验元素中每一个待校验元素是否符合预设规则,并在多个待校验元素 中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式,达到了提高校验 公式规范性的效率的效果。
【专利附图】
【附图说明】
[0019] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0020] 图1是根据本发明的公式规范性校验方法的实施例的流程图;
[0021] 图2是根据本发明的公式规范性校验方法的实施例的执行状态的示意图;以及
[0022] 图3是根据本发明的公式规范性校验装置的实施例的示意图。
【具体实施方式】
[0023] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。
[0024] 为了使本【技术领域】的人员更好地理解本申请方案,下面将结合本申请实施例中的 附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范 围。
[0025] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使 用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语"包括"和 "具有"以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元 的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有 清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0026] 根据本发明的实施例,提供了一种公式规范性校验方法。
[0027] 图1是根据本发明的公式规范性校验方法的实施例的流程图。如图1所示,该方 法包括步骤S102至步骤S106 :
[0028] 步骤S102,获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验 元素包括首元素和尾元素,首元素为多个待校验元素中排列在待校验公式最前端的元素, 尾元素为多个待校验元素中排列在待校验公式最末端的元素。
[0029] 待校验公式是指由运算符、函数、参与运算的操作数以及左右括号等元素组成的 式子。例如:E+SUM(A)+SUM(B)-(C+SUM(D))。需要说明的是,待校验公式包括多个待校验元 素,多个待校验元素包括首元素和尾元素。这里,多个待校验元素可以有不同的划分方法。 例如,可以把E、+、SUM、(、A、)、B、C、-、D等分别作为待校验元素;也可以认为把E、SUM(A)、 SUM(B)、(C+SUM(D))分别作为待校验元素。其中,E、A、B、C、D等为操作数,SUM(A)、SUM(B) 等为函数,(C+SUM(D))等为表达式。
[0030] 步骤S104,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元 素中每一个待校验元素是否符合预设规则。
[0031] 可选地,在依次判断多个待校验元素中每一个待校验元素是否符合预设规则之 前,还可以进行如下包括:将待校验公式进行拆分,获取多个待校验元素;按照从待校验公 式的首元素到尾元素的次序,将多个待校验元素存储在预设数组中,按照从待校验公式的 首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则 包括:判断预设数组中的元素排列是否符合预设规则。
[0032] 获取待校验公式以后,将该公式进行拆分,并将拆分的结果放入数组中去,数组元 素的排列顺序和待校验公式包含的待校验元素的排列顺序一致。拆分方法可以为:每遇到 一个操作数、操作符、函数、左括号(")"),右括号("("),都将其放入到数组中去。例如: 待校验公式为a+(b+sum(c)),则预设数组为:
[0033]
【权利要求】
1. 一种公式规范性校验方法,其特征在于,包括: 获取待校验公式,其中,所述待校验公式包括多个待校验元素,所述多个待校验元素包 括首元素和尾元素,所述首元素为所述多个待校验元素中排列在所述待校验公式最前端的 元素,所述尾元素为所述多个待校验元素中排列在所述待校验公式最末端的元素; 按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素 中每一个待校验元素是否符合预设规则;以及 如果所述多个待校验元素中每一个待校验元素均符合所述预设规则,则确定所述待校 验公式为规范的公式。
2. 根据权利要求1所述的方法,其特征在于, 在依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则之前,所述方 法还包括: 将所述待校验公式进行拆分,获取所述多个待校验元素;以及 按照从所述待校验公式的首元素到所述尾元素的次序,将所述多个待校验元素存储在 预设数组中, 按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素 中每一个待校验元素是否符合预设规则包括:判断所述预设数组中的元素排列是否符合所 述预设规则。
3. 根据权利要求1所述的方法,其特征在于,按照从所述待校验公式的首元素到所述 尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则包 括: 判断所述待校验公式中的首元素是否为操作数、表达式或者函数,其中,如果所述待 校验公式中的首元素不是操作数、表达式或者函数,则确定所述待校验公式为不规范的公 式; 判断所述待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素是 否为操作符,其中,如果所述待校验公式中为操作数、表达式或者函数的待校验元素紧邻的 待校验元素不是操作符,则确定所述待校验公式为不规范的公式;以及 判断所述待校验公式中的尾元素是否为操作数、表达式或者函数,其中,如果所述待校 验公式中的尾元素不是操作数、表达式或者函数,则确定所述待校验公式为不规范的公式。
4. 根据权利要求1所述的方法,其特征在于,按照从所述待校验公式的首元素到所述 尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则包 括: 判断所述多个待校验元素中是否包含左括号;以及 如果所述多个待校验元素中包含所述左括号,则判断在所述待校验公式中排列在所述 左括号之后的待校验元素中是否包含右括号,其中,如果在所述待校验公式中排列在所述 左括号之后的待校验元素中不包含所述右括号,则确定所述待校验公式为不规范的公式。
5. 根据权利要求4所述的方法,其特征在于, 在判断所述多个待校验元素中是否包含左括号之后,所述方法还包括:如果所述多个 待校验元素中包含所述左括号,则记录所述左括号的个数, 判断在所述待校验公式中排列在所述左括号之后的待校验元素中是否包含所述右括 号之后,所述方法还包括:如果在所述待校验公式中排列在所述左括号之后的待校验元素 中包含所述右括号,则记录所述右括号的个数,其中,如果所述左括号的个数与所述右括号 的个数不相等,则确定所述待校验公式为不规范的公式。
6. 根据权利要求1所述的方法,其特征在于,所述待校验公式中包含括号,所述括号中 包含所述待校验元素,按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所 述多个待校验元素中每一个待校验元素是否符合预设规则包括: 判断所述括号是否符合所述预设规则;以及 在判断出所述括号符合所述预设规则之后,判断所述括号内的待校验元素是否符合所 述预设规则。
7. -种公式规范性校验装置,其特征在于,包括: 第一获取单元,用于获取待校验公式,其中,所述待校验公式包括多个待校验元素,所 述多个待校验元素包括首元素和尾元素,所述首元素为所述多个待校验元素中排列在所述 待校验公式最前端的元素,所述尾元素为所述多个待校验元素中排列在所述待校验公式最 末端的元素; 判断单元,用于按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述 多个待校验元素中每一个待校验元素是否符合预设规则;以及 确定单元,用于在所述多个待校验元素中每一个待校验元素均符合所述预设规则时, 确定所述待校验公式为规范的公式。
8. 根据权利要求7所述的装置,其特征在于, 所述装置还包括:第二获取单元,用于将所述待校验公式进行拆分,获取所述多个待校 验元素;以及存储单元,用于按照从所述待校验公式的首元素到所述尾元素的次序,将所述 多个待校验元素存储在预设数组中, 所述判断单元,还用于判断所述预设数组中的元素排列是否符合所述预设规则。
9. 根据权利要求7所述的装置,其特征在于,所述判断单元包括: 第一判断模块,用于判断所述待校验公式中的首元素是否为操作数、表达式或者函数, 其中,如果所述待校验公式中的首元素不是操作数、表达式或者函数,则确定所述待校验公 式为不规范的公式; 第二判断模块,用于判断所述待校验公式中为操作数、表达式或者函数的待校验元素 紧邻的待校验元素是否为操作符,其中,如果所述待校验公式中为操作数、表达式或者函数 的待校验元素紧邻的待校验元素不是操作符,则确定所述待校验公式为不规范的公式;以 及 第三判断模块,用于判断所述待校验公式中的尾元素是否为操作数、表达式或者函数, 其中,如果所述待校验公式中的尾元素不是操作数、表达式或者函数,则确定所述待校验公 式为不规范的公式。
10. 根据权利要求7所述的装置,其特征在于,所述判断单元包括: 第四判断模块,用于判断所述多个待校验元素中是否包含左括号;以及 第五判断模块,用于在所述多个待校验元素中包含所述左括号时,判断在所述待校验 公式中排列在所述左括号之后的待校验元素中是否包含右括号,其中,如果在所述待校验 公式中排列在所述左括号之后的待校验元素中不包含所述右括号,则确定所述待校验公式 为不规范的公式。
【文档编号】G06F17/10GK104484310SQ201410770822
【公开日】2015年4月1日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】李亚东 申请人:北京国双科技有限公司