正则表达式获取两个方括号之间的数字

时间:2015-03-20 06:30:08

标签: javascript regex

您好我需要在javascript中使用正则表达式在2对方括号内获取一个字符串。

这是我的字符串[[12]],23,asd

到目前为止,我尝试使用此模式“\[\[[\d]+\]\]

我需要使用正则表达式

获取值 12

6 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式

\[\[(\d+)\]\]

这将从12

中提取[[12]],23,asd

它使用capture groups concept

答案 1 :(得分:1)

\[\[(\d+)\]\]

试试这个。抓住捕获或组1.参见演示。

var re = /\[\[(\d+)\]\]/gs;
var str = '[[12]],23,asd';
var m;

while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}

答案 2 :(得分:1)

您可以使用组

捕获数字
"[12]],23,asd".match(/\[\[(\d+)\]\]/)[1]
=> "12"

答案 3 :(得分:1)

以下是您可以使用的正则表达式,捕获组以获得$1$2,分别为12和43

\[\[(\d+)\]\]\S+\[\[(\d+)\]\]

答案 4 :(得分:0)

如果您需要获得12,您可以将您提到的内容用于捕获组\[\[(\d+)\]\]

var myRegexp= /\[\[(\d+)\]\]/;
var myString='[[12]],23,asd';
var match = myRegexp.exec(myString);
console.log(match[1]); // will have 12

答案 5 :(得分:0)

我只用2个regExps完成它,还没找到用它做的方法:

var matches = '[[12]],23,asd'.match(/\[{2}(\d+)\]{2}/ig),
    intStr = matches[0].match(/\d+/ig);

console.log(intStr);