I have created the following Regular Expression in C# to extract tokens from a string in the format {token}. I developed the regex in C# and confirmed that it works.
// c#
var regex = new Regex(
"\\{ (?>[^{}]+| \\{ (?<number>) | \\} (?<-number>) )*(?(number)(?!))\\}",
RegexOptions.IgnoreCase | RegexOptions.CultureInvariant |
RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled);
var matches = regex.Matches("blah {token1} blah blah blah {token2} blah");
The variable matches ends up containing two matches - "{token1}" and "{token2}".
I need to execute this in JavaScript, but I get a Syntax error in the expression when I try to execute the following line...
// JavaScript
var regex = new RegExp("\\{ (?>[^{}]+| \\{ (?<number>) | \\} (?<-number>) )*(?(number)(?!))\\}");
Is there anything obvious that I am doing wrong?
Am I trying to use RegEx features that are not supported in JavaScript?