0
我工作的這個表達式使用正則表達式在java中的數學表達式?
((([(]?[-]?[0-9]*[.]?[0-9]+)+([\/\+\-\*])+)+([0-9]*[.]?[0-9]+[)]?)+[\+\-\*\/]?([0-9]*)*)+
我想這能接受像任何表情:(2+2*7)-4+2/(5-3)+2
,我想避免這樣的表達式:(2+3)- or 2+2-(2+3
的目標是從用戶那裏得到的表達並將其分解成令牌,但在此之前我想檢查輸入的有效性。
數學符號主要是上下文無關文法,這是(不是不可能的,但)使用正則表達式非常難以實現。如果令牌與產品不匹配,爲什麼不只是拋出錯誤? –
不要使用正則表達式。使用[表達式樹](http://en.wikipedia.org/wiki/Binary_expression_tree) – Anirudha
所以基本上你想檢查它們是否有正確數量的分隔符('')' ? – hwnd