验证数学方程式

时间:2013-10-31 11:21:02

标签: c# regex

我正在尝试编写正则表达式,确保数学方程式语法为真,我尝试了很多次,但我没有得到我想要的东西。

我需要你的帮助才能找到正则表达式来处理以下情况:

op1 = op2 [+-*/%^] number or op3*

允许嵌套括号

op1 = (op2 [+-*/%^] ( op3 [+-*/%^] op4 ) ) [+-*/%^] op5 or number*

还允许合并两个表达式并允许操作数和操作之间的空格

2 个答案:

答案 0 :(得分:2)

我尝试使用正则表达式进行此操作,但这非常难,我使用Stacks进行方程验证并且工作正常

http://scriptasylum.com/tutorials/infix_postfix/algorithms/postfix-evaluation/

答案 1 :(得分:1)

您可以通过平衡组来完成此操作,您可以阅读以下文章,以获得平衡组的良好演示和说明。

http://www.codeproject.com/Articles/21183/In-Depth-with-NET-RegEx-Balanced-Grouping