使用javascript正则表达式从字符串中获取除连字符和括号之外的所有字符

时间:2017-03-23 15:51:25

标签: javascript regex string split

我有一个这样的字符串:

var myString = "MyString-[ADDAAD]-isGreat";

我想将这个字符串提取为3个部分:

var stringOne = "MyString-";
var stringTwo = "ADDAAD";
var stringThree = "-isGreat";

我知道如何在两个方括号之间获取字符串:

var matches = patternString.match(/\[(.*?)\]/);

现在matches[1]包含ADDAAD 但我怎样才能得到另外两部分呢?

2 个答案:

答案 0 :(得分:2)

使用底部正则表达式选择除-[]之外的所有字符。



var myString = "MyString-[ADDAAD]-isGreat";
var parts = myString.match(/[^-\[\]]+/g);
console.log(parts);




因此,如果您想将值存储在自定义变量中,请使用底部代码

var stringOne = parts[0];
var stringTwo = parts[1];
var stringThree = parts[2];

答案 1 :(得分:2)

你可以用正则表达式拆分字符串。请注意,所有捕获组内容也将是结果数组的一部分。为避免空白项目,您可以在.filter(Boolean)之后添加split()

请参阅下面的JS演示:

var myString = "MyString-[ADDAAD]-isGreat";
console.log(myString.split(/\[(.*?)]/).filter(Boolean));
console.log("s1-[s2]".split(/\[(.*?)]/).filter(Boolean));

注意您不必转义]使用过的外部字符类,如果之前没有对应的[,它总是被解析为文字结束括号。