【发布时间】:2012-08-10 18:30:45
【问题描述】:
对于模板引擎,我使用正则表达式来识别字符串中括号内的内容。例如,正则表达式需要匹配 {key} 或
目前我的正则表达式如下所示:
var rx=/([\[\{<])([\s\S]+?)([\]\}>])]/;
问题是这样的正则表达式不会强制括号匹配。例如在以下字符串中:
[{lastName},{firstName}]
正则表达式将匹配[{lastName}
有没有办法定义匹配的括号?例如,如果左括号是 [ 那么右括号必须是 ],而不是 } 或 >
【问题讨论】:
-
请记住,方括号表达式中的字符通常会失去其特殊性。因此
[[]匹配左方括号,[{]匹配左大括号,等等。 -
听起来你需要的是解析器,而不是正则表达式。
-
所有这些括号的意思是一样的吗?如果没有,你只需要不同的正则表达式
-
@ghoti 正确,我只是认为它的可读性更好。
-
这是duplicate,但我只想说,不,你不能这样做。
标签: javascript regex