Java 验证算术公式
我需要验证一个计算学科等级的公式: 所有标识符(A1、A2、A3等)均基于教师创建的测试、家庭作业等。下面是一个常见公式的示例:Java 验证算术公式,java,regex,Java,Regex,我需要验证一个计算学科等级的公式: 所有标识符(A1、A2、A3等)均基于教师创建的测试、家庭作业等。下面是一个常见公式的示例: ( (A1+A2+A3) / 3) * (B2+B3) 在这种情况下,我只需要验证公式结构,如: 非闭括号(完成) 空括号组“()”(完成) 重复的运算符,如“(A1++A2)” 重复的不同运算符,如“(A1-*A2)” 公式中的所有标识符(如A1、A1、等)已由最终用户通知,且未经验证 有效配方样本: (((A1+A2+A3)/3)*2) + (((B1+B2
( (A1+A2+A3) / 3) * (B2+B3)
在这种情况下,我只需要验证公式结构,如:
- 非闭括号(完成)李>
- 空括号组“()”(完成)李>
- 重复的运算符,如“(A1++A2)”李>
- 重复的不同运算符,如“(A1-*A2)”李>
(((A1+A2+A3)/3)*2) + (((B1+B2+B3)/3)*3)
+ (((A1+A2+A3)/3)*2) + (((B1+B2+B3)/3) / 3++)
无效公式示例:
(((A1+A2+A3)/3)*2) + (((B1+B2+B3)/3)*3)
+ (((A1+A2+A3)/3)*2) + (((B1+B2+B3)/3) / 3++)
正则表达式是非常有用的,您需要一个上下文无关的语法来解析此类内容(或验证)。否则,您只能应用启发式…Regex不是执行此类任务的正确工具。搜索
中缀符号验证
并尝试实现它。查看@I'll try implement your tip和@SAbbasizadeh's tip。谢谢