我一直在寻找regexp来获取大括号之间的值,但是在互联网上找到的示例仅限于一个子字符串,而我需要获得与该模式匹配的所有子字符串值。 例如:
The {Name_Student} is living in {City_name}
如果可能的话,如何在数组中使用大括号({})获取子串的值!我试图在javascript中实现它。
提前致谢:)
答案 0 :(得分:4)
匹配值,然后删除卷曲:
str.match(/\{.+?\}/g).map(function(x){return x.slice(1,-1)})
或者您可以使用捕获组执行此操作:
var res = []
str.replace(/\{(.+?)\}/g, function(_, m){res.push(m)})
答案 1 :(得分:2)
正则表达式{([^}]+)}
捕获与组1的所有匹配项(请参阅the regex demo右侧窗格中的捕获)。下面的代码检索它们。
在JavaScript中
var the_captures = [];
var yourString = 'your_test_string'
var myregex = /{([^}]+)}/g;
var thematch = myregex.exec(yourString);
while (thematch != null) {
// add it to array of captures
the_captures.push(thematch[1]);
document.write(thematch[1],"<br />");
// match the next one
thematch = myregex.exec(yourString);
}
<强>解释强>
{
匹配左大括号([^}]+)
捕获不属于第1组}
匹配右括号答案 2 :(得分:1)