Steve Chambers Steve Chambers - 1 month ago 5
Javascript Question

How to match an unknown number of opening/closing bracket pairs? (Recursive regex?)

I'm looking for a regular expression (**) that will match an unknown number of nested functions.
So

expression
function(expression)
function(function(expression))
function(function(function(expression)))
etc.


will all match successfully. But for instance if I add an extra closing bracket at the end it wouldn't be included in the match.

(**) Please don't answer that this would be easier to do by parsing (and counting brackets) rather than using a regular expression - after scratching my head for a while I know that already!

Answer

I'm looking for a regular expression (**) that will match an unknown number of nested functions.

Some regex implementations support recursive matching (Perl, PHP, .NET), but JavaScript does not. So, the answer to your question is: no, that is not possible.