验证算术公式

时间:2013-04-25 13:40:41

标签: java regex

我需要验证一个公式来计算纪律等级:

所有标识符(A1,A2,A3,...)都基于教师创建的测试,作业等。下面是一个常见公式的例子:

( (A1+A2+A3) / 3) * (B2+B3)

在这种情况下,我只需要验证公式结构,例如:

  • 非闭括号(已完成);
  • 空括号组'()'(已完成);
  • 重复的运算符,如'(A1 ++ A2)';
  • 重复的不同运算符,例如'(A1 - * A2)';

最终用户已通知 A1,A1,等公式的所有标识符,且未经过验证。

有效公式的样本:

(((A1+A2+A3)/3)*2) + (((B1+B2+B3)/3)*3)

无效公式样本:

+ (((A1+A2+A3)/3)*2) + (((B1+B2+B3)/3) / 3++)

1 个答案:

答案 0 :(得分:2)

正则表达式是regular grammars,你需要一个无上下文的语法来解析这种东西(或验证)。否则,你只应用启发式算法......