使用javascript正则表达式提取大括号内的内容
假设我有一根绳子使用javascript正则表达式提取大括号内的内容,javascript,regex,Javascript,Regex,假设我有一根绳子 let str = 'foo ${bar}baz ${foobar}' 我想提取${和}之间的所有元素 所以我想返回['bar',foobar'],理想情况下使用Javascript中的String的match()函数。有没有聪明的正则表达式向导愿意帮忙?如果正则表达式不是真正的约束条件,我会这样做: let str = 'foo ${bar}baz ${foobar}' console.log(str.split("${").slice(1).map(item =>
let str = 'foo ${bar}baz ${foobar}'
我想提取${
和}
之间的所有元素所以我想返回
['bar',foobar']
,理想情况下使用Javascript中的String
的match()
函数。有没有聪明的正则表达式向导愿意帮忙?如果正则表达式不是真正的约束条件,我会这样做:
let str = 'foo ${bar}baz ${foobar}'
console.log(str.split("${").slice(1).map(item => item.split("}")[0]))
// Outputs : ["bar", "foobar"]
否则,这里有一个正则表达式可能适合您的需要:
\${(.*)}
谢谢,我想得太多了。虽然这可能是正确的答案,但如果没有注释,只有代码,它看起来就没有说服力。请考虑添加一个更好的机会被接受的评论。
var str = 'foo ${bar}baz ${foobar}',
exp = /\$\{(\w*)\}/g,
matched,
matches = [];
while ((matched = exp.exec(str)) !== null) {
matches.push(matched[1]);
}
console.log(matches);
// Outputs: ["bar", "foobar"]