CN104484310A - 公式规范性校验方法及装置 - Google Patents

公式规范性校验方法及装置 Download PDF

Info

Publication number
CN104484310A
CN104484310A CN201410770822.8A CN201410770822A CN104484310A CN 104484310 A CN104484310 A CN 104484310A CN 201410770822 A CN201410770822 A CN 201410770822A CN 104484310 A CN104484310 A CN 104484310A
Authority
CN
China
Prior art keywords
verified
formula
tail
operand
header
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.)
Pending
Application number
CN201410770822.8A
Other languages
English (en)
Inventor
李亚东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410770822.8A priority Critical patent/CN104484310A/zh
Publication of CN104484310A publication Critical patent/CN104484310A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种公式规范性校验方法及装置。该公式规范性校验方法包括:获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素;按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则;如果多个待校验元素中每一个待校验元素均符合预设规则,则确定待校验公式为规范的公式。通过本发明,解决了对公式的规范性进行校验时效率低的问题,进而通过依次判断多个待校验元素中每一个待校验元素是否符合预设规则,并在多个待校验元素中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式,达到了提高校验公式规范性的效率的效果。

Description

公式规范性校验方法及装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种公式规范性校验方法及装置。
背景技术
公式通常包含运算符(例如“+”)、函数、参与运算的操作数和括号等。对于用户自定义的公式,在录入查询系统后,可能会因为公式本身的不规范导致无法实现查询获取。因此,有必要保证用户自定义的公式能够和相应的查询相匹配,即公式及其涉及的每一个元素都能够在查询时进行正确的解析。
现有的公式规范性校验往往是通过人工来完成,该方法校验效率低,并且准确性较差。
针对相关技术中对公式的规范性进行校验时效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种公式规范性校验方法及装置,以解决对公式的规范性进行校验时效率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种公式规范性校验方法。
根据本发明的公式规范性校验方法包括:获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元素;按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则;如果多个待校验元素中每一个待校验元素均符合预设规则,则确定待校验公式为规范的公式。
进一步地,在依次判断多个待校验元素中每一个待校验元素是否符合预设规则之前,该方法还包括:将待校验公式进行拆分,获取多个待校验元素;按照从待校验公式的首元素到尾元素的次序,将多个待校验元素存储在预设数组中,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则包括:判断预设数组中的元素排列是否符合预设规则。
进一步地,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则包括:判断待校验公式中的首元素是否为操作数、表达式或者函数,其中,如果待校验公式中的首元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式;判断待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素是否为操作符,其中,如果待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素不是操作符,则确定待校验公式为不规范的公式;判断待校验公式中的尾元素是否为操作数、表达式或者函数,其中,如果待校验公式中的尾元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式。
进一步地,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则包括:判断多个待校验元素中是否包含左括号;如果多个待校验元素中包含左括号,则判断在待校验公式中排列在左括号之后的待校验元素中是否包含右括号,其中,如果在待校验公式中排列在左括号之后的待校验元素中不包含右括号,则确定待校验公式为不规范的公式。
进一步地,在判断多个待校验元素中是否包含左括号之后,该方法还包括:如果多个待校验元素中包含左括号,则记录左括号的个数,判断在待校验公式中排列在左括号之后的待校验元素中是否包含右括号之后,方法还包括:如果在待校验公式中排列在左括号之后的待校验元素中包含右括号,则记录右括号的个数,其中,如果左括号的个数与右括号的个数不相等,则确定待校验公式为不规范的公式。
进一步地,待校验公式中包含括号,括号中包含待校验元素,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则包括:判断括号是否符合预设规则;在判断出括号符合预设规则之后,判断括号内的待校验元素是否符合预设规则。
为了实现上述目的,根据本发明的另一方面,提供了一种公式规范性校验装置。
根据本发明的公式规范性校验装置包括:第一获取单元,用于获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元素;判断单元,用于按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则;确定单元,用于在多个待校验元素中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式。
进一步地,该装置还包括:第二获取单元,用于将待校验公式进行拆分,获取多个待校验元素;以及存储单元,用于按照从待校验公式的首元素到尾元素的次序,将多个待校验元素存储在预设数组中,判断单元,还用于判断预设数组中的元素排列是否符合预设规则。
进一步地,判断单元包括:第一判断模块,用于判断待校验公式中的首元素是否为操作数、表达式或者函数,其中,如果待校验公式中的首元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式;第二判断模块,用于判断待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素是否为操作符,其中,如果待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素不是操作符,则确定待校验公式为不规范的公式;第三判断模块,用于判断待校验公式中的尾元素是否为操作数、表达式或者函数,其中,如果待校验公式中的尾元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式。
进一步地,判断单元包括:第四判断模块,用于判断多个待校验元素中是否包含左括号;第五判断模块,用于在多个待校验元素中包含左括号时,判断在待校验公式中排列在左括号之后的待校验元素中是否包含右括号,其中,如果在待校验公式中排列在左括号之后的待校验元素中不包含右括号,则确定待校验公式为不规范的公式。
通过本发明,采用包括如下步骤的方法:获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元素;按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则;如果多个待校验元素中每一个待校验元素均符合预设规则,则确定待校验公式为规范的公式,解决了对公式的规范性进行校验时效率低的问题,进而通过依次判断多个待校验元素中每一个待校验元素是否符合预设规则,并在多个待校验元素中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式,达到了提高校验公式规范性的效率的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明的公式规范性校验方法的实施例的流程图;
图2是根据本发明的公式规范性校验方法的实施例的执行状态的示意图;以及
图3是根据本发明的公式规范性校验装置的实施例的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明的实施例,提供了一种公式规范性校验方法。
图1是根据本发明的公式规范性校验方法的实施例的流程图。如图1所示,该方法包括步骤S102至步骤S106:
步骤S102,获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元素。
待校验公式是指由运算符、函数、参与运算的操作数以及左右括号等元素组成的式子。例如: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))等为表达式。
步骤S104,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则。
可选地,在依次判断多个待校验元素中每一个待校验元素是否符合预设规则之前,还可以进行如下包括:将待校验公式进行拆分,获取多个待校验元素;按照从待校验公式的首元素到尾元素的次序,将多个待校验元素存储在预设数组中,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则包括:判断预设数组中的元素排列是否符合预设规则。
获取待校验公式以后,将该公式进行拆分,并将拆分的结果放入数组中去,数组元素的排列顺序和待校验公式包含的待校验元素的排列顺序一致。拆分方法可以为:每遇到一个操作数、操作符、函数、左括号(”)”),右括号(”(”),都将其放入到数组中去。例如:待校验公式为a+(b+sum(c)),则预设数组为:
a + ( b + sum ( C ) )
需要说明的是,在判断多个待校验元素中每一个待校验元素是否符合预设规则之前进行待校验公式的拆分,可以更加直观地表现校验进行的状态。当然,不进行待校验公式的拆分,而是直接对待校验公式进行遍历也是可以的。
按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则包括如下判断步骤:判断待校验公式中的首元素是否为操作数、表达式或者函数,其中,如果待校验公式中的首元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式;判断待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素是否为操作符,其中,如果待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素不是操作符,则确定待校验公式为不规范的公式;判断待校验公式中的尾元素是否为操作数、表达式或者函数,其中,如果待校验公式中的尾元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式。
需要说明的是,待校验公式符合规范性的一个必要条件是首元素为操作数、表达式或者函数,而不能是操作符;同时,尾元素也必须是操作数、表达式或者函数,不能是操作符。
为了便于理解,可以将公式的校验状态划分为如下7种:开始、正确、错误、操作数、操作符、表达式、函数。图2是根据本发明的公式规范性校验方法的实施例的执行状态的示意图。如图2所示,在对待校验公式进行校验的过程中,从头开始遍历该待校验公式,初始时,可以设置检验状态为“开始”,在此状态下,只能接收操作数、表达式或者函数,否则校验进入“错误”的状态;当接收到操作数(“表达式”)后,状态变为“操作数”(“表达式”),接下来紧邻接收的应是操作符,若不是则进入“错误”状态;当紧邻接收到操作符后,状态变为“操作符”,下一个接收到的应是操作数或表达式,若不是则进入“错误”状态;当下一个收到操作数或表达式后,进入“表达式”状态,下一个应该接收操作符,若不是,则进入“错误”状态;如此循环下去,当最终状态为“操作数”或“表达式”时,公式的规范性得到验证。
图2所示的方法可以描述为一种状态机模型。它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止。利用状态机模型进行公式校验可以提高公式校验的准确性和执行效率。
需要说明的是,图2中的表达式是指一种复合的状态。函数在正确运算完成以后,函数及其运算部分变为表达式;括号内的部分正确运算完成以后,括号及其内部的部分变成表达式;两个可运算部分(例如,操作数或者表达式)正确运算完成以后,共同变成一个表达式。
例如:待校验公式为a+b+(c+d),首先a+b运算后的状态变成表达式,此时公式可以看作:表达式+(c+d);再进行运算(c+d),又得到一个表达式,此时公式可看作:表达式+表达式;之后再进行运算,最终得到:表达式。
按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则还可以包括:判断多个待校验元素中是否包含左括号;如果多个待校验元素中包含左括号,则判断在待校验公式中排列在左括号之后的待校验元素中是否包含右括号,其中,如果在待校验公式中排列在左括号之后的待校验元素中不包含右括号,则确定待校验公式为不规范的公式。
当在校验过程中出现左括号时,按照公式规范性的要求,在接下来的校验中,规范的公式必然会出现与其匹配的右括号。如果在待校验公式中排列在左括号之后的待校验元素中没有出现右括号,则可以确定待校验公式为不规范的公式。
在判断多个待校验元素中是否包含左括号之后,还可以进行如下步骤:如果多个待校验元素中包含左括号,则记录左括号的个数,判断在待校验公式中排列在左括号之后的待校验元素中是否包含右括号之后,方法还包括:如果在待校验公式中排列在左括号之后的待校验元素中包含右括号,则记录右括号的个数,其中,如果左括号的个数与右括号的个数不相等,则确定待校验公式为不规范的公式。
在校验过程中出现左括号时,可以设置一个计数器,用来记录左括号的数量,如果遇到左括号,则计数器+1,如果校验过程中出现了右括号,则计数器-1。当最终校验结束后,查看计数器的数值,如果数值为0,则可以说明括号匹配成功;如果数值不为0,则说明该公式一定是不规范的。
如果待校验公式中包含括号,括号中包含待校验元素,按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则可以按照如下方法进行:判断括号是否符合预设规则;在判断出括号符合预设规则之后,判断括号内的待校验元素是否符合预设规则。
在待校验公式中包含括号时,首先按照上述提到的方法检测括号是否规范;如果括号是不规范的,则可以认为该待校验公式是不规范的,不需要再进行后续的验证;如果检测出括号是规范的,则需要再验证括号中的待校验元素是否符合规范。如果括号内的部分为操作数或表达式,则括号和内部待校验元素的整体变成表达式,否则进入错误状态。该校验方法可以在一定程度上提高公式校验的效率。
例如:待校验公式为a+(b+sum(c))。待校验公式中包含的待校验元素为a、+、(、b、sum、c、)等。在校验开始时,设置校验状态为“开始”。首先验证元素a是否为操作数、表达式或者函数,在校验a后校验状态为“操作数”,继续进行验证;然后验证+是否为操作符,在校验+后校验状态为“操作符”,继续进行验证;然后验证左括号,在验证待校验元素为左括号后,判断后续是否存在右括号,验证结果是存在的;之后按照同样的道理验证括号内的待校验元素。最终可以完成整个公式的校验。
再例如:待校验公式为a+(b+c。待校验公式中包含的待校验元素为a、b、c、(、+等。在校验开始时,设置校验状态为“开始”。首先验证元素a是否为操作数、表达式或者函数,在校验a后校验状态为“操作数”,继续进行验证;然后验证+是否为操作符,在校验+后校验状态为“操作符”,继续进行验证;然后验证左括号,在验证待校验元素为左括号后,判断后续是否存在右括号,验证结果是不存在右括号。因此,校验结束,校验结果为待校验公式为不规范的公式。
步骤S106,如果多个待校验元素中每一个待校验元素均符合预设规则,则确定待校验公式为规范的公式。
需要说明的是,当验证完成后,可以判断待校验公式的最终状态,如果待校验公式的最终状态是操作数或表达式,则待校验公式是规范的,否则是不规范的。另外,该验证过程只需要对待校验公式进行一次前向遍历即可完成,算法的复杂度为O(n),因此执行效率是很高的。
该实施例由于采用了如下步骤:获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元素;按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则;如果多个待校验元素中每一个待校验元素均符合预设规则,则确定待校验公式为规范的公式,解决了对公式的规范性进行校验时效率低的问题,进而通过依次判断多个待校验元素中每一个待校验元素是否符合预设规则,并在多个待校验元素中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式,达到了提高校验公式规范性的效率的效果。
根据本发明的实施例,提供了一种公式规范性校验装置。需要说明的是,本发明实施例的公式规范性校验装置可以用于执行本发明实施例所提供的公式规范性校验方法,本发明实施例的公式规范性校验方法也可以通过本发明实施例所提供的公式规范性校验装置来执行。
图3是根据本发明的公式规范性校验装置的实施例的示意图。如图3所示,该装置包括:第一获取单元10、判断单元20和确定单元30。
第一获取单元10,用于获取待校验公式,其中,待校验公式包括多个待校验元素,多个待校验元素包括首元素和尾元素,首元素为多个待校验元素中排列在待校验公式最前端的元素,尾元素为多个待校验元素中排列在待校验公式最末端的元素。
可选地,该装置还可以包括:第二获取单元,用于将待校验公式进行拆分,获取多个待校验元素;以及存储单元,用于按照从待校验公式的首元素到尾元素的次序,将多个待校验元素存储在预设数组中,判断单元,还用于判断预设数组中的元素排列是否符合预设规则。
判断单元20,用于按照从待校验公式的首元素到尾元素的次序,依次判断多个待校验元素中每一个待校验元素是否符合预设规则。
可选地,判断单元20可以包括:第一判断模块,用于判断待校验公式中的首元素是否为操作数、表达式或者函数,其中,如果待校验公式中的首元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式;第二判断模块,用于判断待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素是否为操作符,其中,如果待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素不是操作符,则确定待校验公式为不规范的公式;第三判断模块,用于判断待校验公式中的尾元素是否为操作数、表达式或者函数,其中,如果待校验公式中的尾元素不是操作数、表达式或者函数,则确定待校验公式为不规范的公式。
判断单元20还可以包括:第四判断模块,用于判断多个待校验元素中是否包含左括号;第五判断模块,用于在多个待校验元素中包含左括号时,判断在待校验公式中排列在左括号之后的待校验元素中是否包含右括号,其中,如果在待校验公式中排列在左括号之后的待校验元素中不包含右括号,则确定待校验公式为不规范的公式。
确定单元30,用于在多个待校验元素中每一个待校验元素均符合预设规则时,确定待校验公式为规范的公式。
本发明提供的公式规范性校验装置包括:第一获取单元10、判断单元20和确定单元30。通过该装置,解决了对公式的规范性进行校验时效率低的问题,进而通过判断单元20依次判断多个待校验元素中每一个待校验元素是否符合预设规则,并在多个待校验元素中每一个待校验元素均符合预设规则时,利用确定单元30确定待校验公式为规范的公式,达到了提高校验公式规范性的效率的效果。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种公式规范性校验方法,其特征在于,包括:
获取待校验公式,其中,所述待校验公式包括多个待校验元素,所述多个待校验元素包括首元素和尾元素,所述首元素为所述多个待校验元素中排列在所述待校验公式最前端的元素,所述尾元素为所述多个待校验元素中排列在所述待校验公式最末端的元素;
按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则;以及
如果所述多个待校验元素中每一个待校验元素均符合所述预设规则,则确定所述待校验公式为规范的公式。
2.根据权利要求1所述的方法,其特征在于,
在依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则之前,所述方法还包括:
将所述待校验公式进行拆分,获取所述多个待校验元素;以及
按照从所述待校验公式的首元素到所述尾元素的次序,将所述多个待校验元素存储在预设数组中,
按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则包括:判断所述预设数组中的元素排列是否符合所述预设规则。
3.根据权利要求1所述的方法,其特征在于,按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则包括:
判断所述待校验公式中的首元素是否为操作数、表达式或者函数,其中,如果所述待校验公式中的首元素不是操作数、表达式或者函数,则确定所述待校验公式为不规范的公式;
判断所述待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素是否为操作符,其中,如果所述待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素不是操作符,则确定所述待校验公式为不规范的公式;以及
判断所述待校验公式中的尾元素是否为操作数、表达式或者函数,其中,如果所述待校验公式中的尾元素不是操作数、表达式或者函数,则确定所述待校验公式为不规范的公式。
4.根据权利要求1所述的方法,其特征在于,按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则包括:
判断所述多个待校验元素中是否包含左括号;以及
如果所述多个待校验元素中包含所述左括号,则判断在所述待校验公式中排列在所述左括号之后的待校验元素中是否包含右括号,其中,如果在所述待校验公式中排列在所述左括号之后的待校验元素中不包含所述右括号,则确定所述待校验公式为不规范的公式。
5.根据权利要求4所述的方法,其特征在于,
在判断所述多个待校验元素中是否包含左括号之后,所述方法还包括:如果所述多个待校验元素中包含所述左括号,则记录所述左括号的个数,
判断在所述待校验公式中排列在所述左括号之后的待校验元素中是否包含所述右括号之后,所述方法还包括:如果在所述待校验公式中排列在所述左括号之后的待校验元素中包含所述右括号,则记录所述右括号的个数,其中,如果所述左括号的个数与所述右括号的个数不相等,则确定所述待校验公式为不规范的公式。
6.根据权利要求1所述的方法,其特征在于,所述待校验公式中包含括号,所述括号中包含所述待校验元素,按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则包括:
判断所述括号是否符合所述预设规则;以及
在判断出所述括号符合所述预设规则之后,判断所述括号内的待校验元素是否符合所述预设规则。
7.一种公式规范性校验装置,其特征在于,包括:
第一获取单元,用于获取待校验公式,其中,所述待校验公式包括多个待校验元素,所述多个待校验元素包括首元素和尾元素,所述首元素为所述多个待校验元素中排列在所述待校验公式最前端的元素,所述尾元素为所述多个待校验元素中排列在所述待校验公式最末端的元素;
判断单元,用于按照从所述待校验公式的首元素到所述尾元素的次序,依次判断所述多个待校验元素中每一个待校验元素是否符合预设规则;以及
确定单元,用于在所述多个待校验元素中每一个待校验元素均符合所述预设规则时,确定所述待校验公式为规范的公式。
8.根据权利要求7所述的装置,其特征在于,
所述装置还包括:第二获取单元,用于将所述待校验公式进行拆分,获取所述多个待校验元素;以及存储单元,用于按照从所述待校验公式的首元素到所述尾元素的次序,将所述多个待校验元素存储在预设数组中,
所述判断单元,还用于判断所述预设数组中的元素排列是否符合所述预设规则。
9.根据权利要求7所述的装置,其特征在于,所述判断单元包括:
第一判断模块,用于判断所述待校验公式中的首元素是否为操作数、表达式或者函数,其中,如果所述待校验公式中的首元素不是操作数、表达式或者函数,则确定所述待校验公式为不规范的公式;
第二判断模块,用于判断所述待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素是否为操作符,其中,如果所述待校验公式中为操作数、表达式或者函数的待校验元素紧邻的待校验元素不是操作符,则确定所述待校验公式为不规范的公式;以及
第三判断模块,用于判断所述待校验公式中的尾元素是否为操作数、表达式或者函数,其中,如果所述待校验公式中的尾元素不是操作数、表达式或者函数,则确定所述待校验公式为不规范的公式。
10.根据权利要求7所述的装置,其特征在于,所述判断单元包括:
第四判断模块,用于判断所述多个待校验元素中是否包含左括号;以及
第五判断模块,用于在所述多个待校验元素中包含所述左括号时,判断在所述待校验公式中排列在所述左括号之后的待校验元素中是否包含右括号,其中,如果在所述待校验公式中排列在所述左括号之后的待校验元素中不包含所述右括号,则确定所述待校验公式为不规范的公式。
CN201410770822.8A 2014-12-11 2014-12-11 公式规范性校验方法及装置 Pending CN104484310A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410770822.8A CN104484310A (zh) 2014-12-11 2014-12-11 公式规范性校验方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410770822.8A CN104484310A (zh) 2014-12-11 2014-12-11 公式规范性校验方法及装置

Publications (1)

Publication Number Publication Date
CN104484310A true CN104484310A (zh) 2015-04-01

Family

ID=52758853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410770822.8A Pending CN104484310A (zh) 2014-12-11 2014-12-11 公式规范性校验方法及装置

Country Status (1)

Country Link
CN (1) CN104484310A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767004A (zh) * 2020-06-30 2020-10-13 电子科技大学 基于逆波兰算法的数字示波器数学运算处理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050022091A1 (en) * 2003-07-21 2005-01-27 Holman Thomas J. Method, system, and apparatus for adjacent-symbol error correction and detection code
CN101673296A (zh) * 2009-09-02 2010-03-17 太仓市同维电子有限公司 数据通讯过程中文件校验的方法
CN101866363A (zh) * 2010-06-22 2010-10-20 用友软件股份有限公司 报表公式树形追踪方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050022091A1 (en) * 2003-07-21 2005-01-27 Holman Thomas J. Method, system, and apparatus for adjacent-symbol error correction and detection code
CN101673296A (zh) * 2009-09-02 2010-03-17 太仓市同维电子有限公司 数据通讯过程中文件校验的方法
CN101866363A (zh) * 2010-06-22 2010-10-20 用友软件股份有限公司 报表公式树形追踪方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WANGXUELUNGOD: "命题公式合法性的判定", 《百度文库》 *
WYU110801: "中缀表达式的计算(判断表达式是否合法)", 《CSDN》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111767004A (zh) * 2020-06-30 2020-10-13 电子科技大学 基于逆波兰算法的数字示波器数学运算处理方法
CN111767004B (zh) * 2020-06-30 2022-02-11 电子科技大学 基于逆波兰算法的数字示波器数学运算处理方法

Similar Documents

Publication Publication Date Title
CN109345388B (zh) 区块链智能合约验证方法、装置及存储介质
CN109543942A (zh) 数据校验方法、装置、计算机设备和存储介质
CN110855531B (zh) 一种转发路径检测方法及装置
US10581849B2 (en) Data packet transmission method, data packet authentication method, and server thereof
CN106406159B (zh) 用于配置支持vlan的网络中的设备的系统
CN113271266B (zh) 异构交换芯片的报文转发方法及设备
EP2862101B1 (en) Method and a consistency checker for finding data inconsistencies in a data repository
CN112289382A (zh) 多倍体基因组同源染色体的拆分方法、装置及其应用
CN107483341B (zh) 一种跨防火墙报文快速转发方法及装置
CN104484311B (zh) 用于公式的数据处理方法和装置
CN114722049A (zh) 一种多方数据交集计算方法、装置及电子设备
CN104484310A (zh) 公式规范性校验方法及装置
US10356010B2 (en) Control device
CN109245910B (zh) 识别故障类型的方法及装置
CN106649352B (zh) 数据处理方法及装置
CN107248929B (zh) 一种多维关联数据的强关联数据生成方法
CN110830107B (zh) 光宽带网络故障定位方法及装置
US8160092B1 (en) Transforming a declarative description of a packet processor
CN110580172B (zh) 配置规则的验证方法及装置、存储介质、电子装置
CN114297187A (zh) 一种双重数据校验方法及系统
CN110191462B (zh) 一种确定移动终端的方法、装置、介质及设备
CN112149696B (zh) 图嵌入模型的训练方法及装置
CN106411564A (zh) 用于检测以太网帧的设备和方法
CN115826539B (zh) 一种基于工业互联网标识的设备协同控制方法及系统
CN112637234A (zh) 基于端口变动的安全规则更新方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150401

RJ01 Rejection of invention patent application after publication