我希望我的输出是 var data =“THIS”; 里面的内容,为此,我设法做到了这一点:
var plaintext = fs.readFileSync( process.argv[ 1 ] ).toString();
var regex = new RegExp("var\\ data\\ =\\ \"(.{0,})\";", "g", "y");
var regex2 = new RegExp("\"(.{0,})\"", "g");
var info = JSON.parse(plaintext.match(regex)[0].match(regex2)[0]);
有没有办法只有一个正则表达式,并将代码压缩成2行或3行?
答案 0 :(得分:0)
答案 1 :(得分:0)
这个怎么样?
plaintext.match(/var\s+data\s*=\s*"(.*)";/)[1]
更新:此正则表达式还会匹配包含转义引号的字符串,例如"\"foo\""
只要这些引号后面没有分号。为此,结束引号必须紧跟分号。
作为替代方法,您还可以从匹配的字符串中排除双引号(使用[^"]*
而不是.*
),并从正则表达式中省略分号。