Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式捕获所有内容,包括两个模式之间的新行_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式捕获所有内容,包括两个模式之间的新行

Javascript 正则表达式捕获所有内容,包括两个模式之间的新行,javascript,regex,Javascript,Regex,我正试图从样式表中提取@media rules进行缓存,然后在IE中应用,如果您可以假设最后一行只是“}”,那么这将完成: /657px\)[\n\r\w\s]*\{[\n\r\w\W]*[\n\r]\}/ 我使用phantomjs在您的测试用例上运行下面的过滤器: var fs = require('fs'), input = fs.open('/dev/stdin', 'r'); var stuff = input.read(); var somestuff = stuff.match(

我正试图从样式表中提取@media rules进行缓存,然后在IE中应用,如果您可以假设最后一行只是“}”,那么这将完成:

 /657px\)[\n\r\w\s]*\{[\n\r\w\W]*[\n\r]\}/
我使用phantomjs在您的测试用例上运行下面的过滤器:

var fs = require('fs'),
input = fs.open('/dev/stdin', 'r');
var stuff = input.read();
var somestuff = stuff.match(/657px\)[\n\r\w\s]*\{[\w\W]*[\n\r]\}/);
console.log(somestuff);

我忘记了这个问题:-),但如果有人感兴趣:

/657px\)(\s|\n)*\{(.|\n)+?(}[^{]*})/

成功了(几乎成功了)。它可以很好地工作,但在IEF中可以添加更长的样式列表。它们都以@media开头吗?或者@somethingelse?谢谢你的努力,但这和我使用的完全一样:嗨,Cheapwax-意外输入的最后一条评论:/。感谢您的努力,但这与我使用的(/657px)(\s|\n)*\{/)完全相同-它从文字开始,一直到工作表的结尾,包括任何后续的@media规则。也许我的问题还不够清楚,但我需要做的是让媒体规则从文字“657px”开始在双花括号“}}”处停止,这是媒体查询的结尾,这样我就可以将特定的媒体查询作为样式表附加到IEHi,Jack。目前,在一张纸中只有两套媒体规则:“@media screen和(最小宽度:657px){”和“@media screen和(最小宽度:1001px){”。我只想捕捉一个媒体查询的规则-因此,当在(/}[^{]*}/之间找到一个“}”后跟另一个“}”而没有打开“{”时,请停止。您好,Cheapwax-我在之前的评论中犯了一个错误-我想说的是你的正则表达式做的事情与/657px相同(\s |\n |)*{/。我现在使用的(“/657px)(\s |\n)*\{/”-没有“|.”)只是得到了文本的索引。
 /657px\)[\n\r\w\s]*\{[\n\r\w\W]*[\n\r]\}/
var fs = require('fs'),
input = fs.open('/dev/stdin', 'r');
var stuff = input.read();
var somestuff = stuff.match(/657px\)[\n\r\w\s]*\{[\w\W]*[\n\r]\}/);
console.log(somestuff);
/657px\)(\s|\n)*\{(.|\n)+?(}[^{]*})/