我正在编写一个节点模块,我想查找一个灰尘模板使用的所有部分。
我有
regex = /\{\s*\>\s*("[^"]*").*\}/
和
test = " something { > \"templatename\" randomchars\" key=\"{random}\" } random { > \"base/templatename2\" thing=\"random\" }"
我想同时捕捉templatename
和base/templatename2
。
我尝试使用g
旗帜,但我尝试regex.exec(test)
两次和test.match(regex)
,但他们都没有给我两个。我做错了什么?
答案 0 :(得分:2)
让.*
不贪婪(.*?
),以便它不会涵盖以下模板名称:
var matches = test.match(/\{\s*>\s*("[^"]*").*?\}/g)
这为您提供匹配,而不是子匹配。要获取群组,请使用exec
:
var r = /\{\s*>\s*("[^"]*").*?\}/g, m;
while (m = r.exec(test)) {
console.log(m[1]);
}
侧面通知:无需转义>
。