从一个大的缩小的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)
。啊......好吧......