I am working on a math expression parser using regular expressions and I am trying to add parenthesis support.
My parser works as follows:
function parse_expression(expression){
Find parenthetical expressions
Loop through parenthetical expressions, call parse_expression() on all of them
Replace parenthetical expression with value of expression
Find value of expression
Return value
}
Since it is recursive, I need to find only the extreme brackets. For example, if I were parsing the string "(5 + (4 + (3/4) + (3 * 2) + 2)) + (1 + 2)", I want to find the expressions "5 + (4 + (3 / 4) + (3 * 2) + 2) "and" 1 + 2 ". How do you do this with regular expressions?
Now the regular expression ("\ (([^ \)] +) \)") will return only "5 + (4 + (3 * 2"), it will not receive the full first expression and it will not receive even a second.
Any ideas?
Thanks,
Kyle