Steve Chambers Steve Chambers - 26 days ago 19
Javascript Question

How to match nested function invocations (bracket pairs) using a regular expression (recursive?)

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.

Comments