我有一个这样的字符串出现:“ [value1] [value2]”
如何获取方括号内的值? 注意:如果字符串是这样的“ [] [value2]”,则第一个有空格的括号必须向我返回“” ...
我一直在尝试很多正则表达式和拆分,但是都没有用。
这是我尝试过的最后一个:
var pattern = /[([^]]*)]/g;
var res = pattern.exec(datos[0].title);
我尝试过的另一个是:
var res = datos[0].title.match(/^.*?[([^]]*)].*?[([^]]*)]/gm);
但是我不需要做什么...
我正在尝试找到一种“能做到这一点”的正则表达式,该正则表达式可以在方括号(甚至是空格)内获取任何内容
答案 0 :(得分:2)
如@HarryCutts所述,您不需要正则表达式:
var x = "[value1][value2]";
console.log( x.slice(1,-1).split('][') );
答案 1 :(得分:0)
您可以尝试使用此正则表达式和强力方式来提取内容。
var regex = /\[(.*?)\]/g;
var value = "[value1][value2][]";
var matches = value.match(regex);
var matchedValues = matches.map(match => {
return match.replace("[", "").replace("]", "");
}).join(" ");
console.log(matchedValues.toString())
答案 2 :(得分:0)
您可以这样做:
var str = "['value1']['value2']";
var value1 = str.split("]")[0].split("[")[1];
var value2 = str.split("]")[1].split("[")[1];
console.log(str);
console.log(value1);
console.log(value2);
答案 3 :(得分:0)
您可以轻松地将其扩展为更多值。
const string = "[value1][value2]";
const removeBrackets = (stringWithBrackets) => {
return stringWithBrackets.split("][").map(s => s = s.replace(/\[*\]*/g, ""));
};
const [value1, value2] = removeBrackets(string);
console.log(value1, value2);
答案 4 :(得分:0)
const getItems = (fullItemsString) => {
let items = fullItemsString.replace(/\[/g, "").split("]");
items.pop()
return items;
}
使用:
let items = getItems("[2][][34][1]");
结果:['2','','34','1']