正则表达式匹配括号

Chr*_*phe 10 javascript regex

对于模板引擎,我使用正则表达式来标识字符串中括号内的内容.例如,正则表达式需要匹配{key}或<tag>或[element].

目前我的正则表达式如下所示:

var rx=/([\[\{<])([\s\S]+?)([\]\}>])]/;
Run Code Online (Sandbox Code Playgroud)

问题是这样的正则表达式不会强制括号匹配.例如,在以下字符串中:

[{lastName},{firstName}]
Run Code Online (Sandbox Code Playgroud)

正则表达式将匹配 [{lastName}

有没有办法定义匹配括号?例如,如果开口括号是[那么结束括号必须是],而不是}或a>

mur*_*d99 22

这样做的最好方法是分成3个正则表达式,特别是如果不同的括号可以有不同的含义,

var rx1 = /\[([^\]]+)]/;
var rx2 = /\(([^)]+)\)/;
var rx3 = /{([^}]+)}/;
Run Code Online (Sandbox Code Playgroud)

这些将匹配所包围的任何文本[],()以及{}分别与所述第一匹配的组中中的文本.