正则表达式将所有内容放在方括号之间

时间:2019-02-18 03:50:37

标签: javascript regex

你好,我有这个字符串["type",[129,167,85,83]],我只想提取它: [129,167,85,83]使用regexpr

我尝试了以下方法:

var re = new RegExp('",(.*)]');
var r  = '["type",[129,167,85,83]]'.match(re);
if (r)
    console.log(r);

但这给了我以下结果: ",[129,167,85,83]] 请问我该如何解决?

6 个答案:

答案 0 :(得分:2)

不一定是最好的解决方案,但是从您现在所在的位置最快。 Match产生一个数组-您需要第二项:

var re = new RegExp('",(.*)]');
var r  = '["type",[129,167,85,83]]'.match(re);
if (r) console.log(r[1])

答案 1 :(得分:1)

您可以使用JSON.parse

let str='["type",[129,167,85,83]]';
let arr=JSON.parse(str);
arr.shift();
let new_str=JSON.stringify(arr.flat());
console.log(new_str);

答案 2 :(得分:1)

您可以.split()个字符,后跟[并关闭],在索引1处获取元素

let str = `["type",[129,167,85,83]]`;
let [,match] = str.split(/.(?=\[)|\]$/);

console.log(match);

答案 3 :(得分:1)

你在这里。

诀窍是添加(?<=,)将执行逗号。

在下面添加了一个测试,供您参考

var regex = /(?<=,)(\[.*?\])/g;
var json = '["type",[129,167,85,83]]';
var r  = json.match(regex);

console.log(r);

答案 4 :(得分:0)

最好使用JSON.parse。 我在下面为您提供了一个小例子;

var course = '["type",[129,167,85,83]]';
var resultArray = JSON.parse(course);
console.log(resultArray[1]); // 129,167,85,83

答案 5 :(得分:0)

尝试一下 var re = new RegExp('(?<=",)(.*)(?=])')