捕获多次出现的javascript正则表达式
我正在编写一个节点模块,我想找到dust模板使用的所有部分 我有捕获多次出现的javascript正则表达式,javascript,regex,dust.js,Javascript,Regex,Dust.js,我正在编写一个节点模块,我想找到dust模板使用的所有部分 我有 regex = /\{\s*\>\s*("[^"]*").*\}/ 及 我想捕获templatename和base/templatename2 我尝试了使用和不使用g标志,尝试了regex.exec(test)两次和test.match(regex),但两次都没有给出。我做错了什么?使*不贪婪(*?),这样它就不会覆盖以下模板名称: var matches = test.match(/\{\s*>\s*("[^"]*
regex = /\{\s*\>\s*("[^"]*").*\}/
及
我想捕获templatename
和base/templatename2
我尝试了使用和不使用
g
标志,尝试了regex.exec(test)
两次和test.match(regex)
,但两次都没有给出。我做错了什么?使*
不贪婪(*?
),这样它就不会覆盖以下模板名称:
var matches = test.match(/\{\s*>\s*("[^"]*").*?\}/g)
这将为您提供匹配项,而不是子匹配项。要获取组,请使用exec
:
var r = /\{\s*>\s*("[^"]*").*?\}/g, m;
while (m = r.exec(test)) {
console.log(m[1]);
}
旁注:没有必要退出
var r = /\{\s*>\s*("[^"]*").*?\}/g, m;
while (m = r.exec(test)) {
console.log(m[1]);
}