Javascript正则表达式:使用match()时如何获得子串匹配

时间:2016-03-31 20:05:04

标签: javascript regex

从一个大的缩小的css文件中我想要提取特定媒体查询中的样式。类似的东西:

.some-class{aaa:bbb;ccc:ddd;}@media (min-width: 500px){.some-other-class{aaa:bbb;ccc:ddd;}}.another-class{aaa:bbb;ccc:ddd;}

以下正则表达式选择媒体查询,并在媒体查询中包含样式的捕获组:

regex = new RegExp("@media.\\(min-width:\\d{3,4}px\\){(.+?\\})\\}", "g");

捕获组结果是我真正想要的部分。但是当有多个匹配时,如何访问多个捕获组结果。当使用str.match(regex);时,结果数组中只有一个结果是结果数组中的第二项。

regex.exec(str)[1]与while循环结合使用的唯一解决方案是什么?像:

while(result != null){
    result = regex.exec(str)[1];
    resultArr.push(result);
}

我更愿意使用match() ...我发现更具可读性和更优雅的解决方案,你立即得到一个包含结果的数组...虽然我要找的结果只是一个子集我得到的结果......

<小时/> 我想我将不得不使用我给出的最后一个代码段regex.exec(str)。啊......好吧......

0 个答案:

没有答案