在以下输入字符串中:
{$foo}foo bar \\{$blah1}oh{$blah2} even more{$blah3} but not{$blarg}{$why_not_me}
我正在尝试匹配所有{$SOMETHING_HERE}
前面没有未转义反斜杠的实例。
例子:
我希望它匹配{$SOMETHING}
但不匹配\{$SOMETHING}
。
但我确实希望它匹配\\{$SOMETHING}
尝试:
到目前为止,我所有的尝试都将符合我想要的,除了标签彼此相邻,比如{$SOMETHING}{$SOMETHING_ELSE}
这是我目前拥有的:
var input = '{$foo}foo bar \\{$blah1}oh{$blah2} even more{$blah3} but not{$blarg}{$why_not_me}';
var results = input.match(/(?:[^\\]|^)\{\$[a-zA-Z_][a-zA-Z0-9_]*\}/g);
console.log(results);
哪个输出:
["{$foo}", "h{$blah2}", "e{$blah3}", "t{$blarg}"]
目标
我希望它是:
["{$foo}", "{$blah2}", "{$blah3}", "{$blarg}", "{$why_not_me}"]
问题
谁能指出我正确的方向?