2013-10-31 140 views
0

我在寫正則表達式,它確保數學方程的語法是正確的我嘗試了很多次,但是我沒有得到我想要的。驗證數學公式

我需要你的幫助,找到一個正則表達式來處理以下情況:

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

允許嵌套括號

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

,也允許這兩種表現形式合併,並允許操作數和操作之間的空間

+4

如果您正則表達式引擎不支持遞歸的正則表達式,你運氣不好。用遞歸下降算法驗證它們。也許你通過計算括號並使用正則表達式驗證每個術語是幸運的,但這肯定會錯過一些角落。 – knittl

+0

看看這個問題:http://stackoverflow.com/questions/355062/is-there-a-string-math-evaluator-in-net – germi

+0

.NET Regex引擎允許通過平衡組遞歸。 –

回答