RegEx提取类似字符组中的位置值

时间:2013-11-25 00:16:50

标签: javascript regex

的Javascript。我需要在“插入”组中提取第二个数字值:

例如字符串:

  

“box-shadow:inset 3px 4px 0px#444,inset -1px -2px 0px#444,5px   6px 0px#444,插入1px 1px 0px#444“

所以我需要从示例字符串中提取 4和1

不知道怎么做。

3 个答案:

答案 0 :(得分:1)

/inset\s+-?\d+px\s+\+?(\d+)px/g

答案 1 :(得分:1)

您可以使用:

inset(?:(?: -\d+px)? (\d+)px){2}

结果出现在第一个捕获组中。

答案 2 :(得分:1)

这个正则表达式可以解决这个问题:/inset -?\d+px (\d+)px/g

但是,由于您需要使用全局修饰符来捕获所有匹配项,因此您应该使用exec中的while方法,而不是使用match,否则您将获胜获得被捕获的团体。

var match, regex = /inset -?\d+px (\d+)px/g,
    str = "box-shadow: inset 3px 4px 0px #444, inset -1px -2px 0px #444,5px 6px 0px #444, inset 1px 1px 0px #444";

while (match = regex.exec(str)) {
    console.log(match[1])
}

如果要加入数组中的匹配项,可以使用:

var matches = [];
while (match = regex.exec(str)) {
    matches.push(match[1]);
}
console.log(matches); // ["4", "1"]