Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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,我希望我的输出是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

我希望我的输出是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行?

以下是我的方法:

var matches = plaintext.match(/var data = "([^"]+)"/);
以下是我的方法:

var matches = plaintext.match(/var data = "([^"]+)"/);
这个怎么样

plaintext.match(/var\s+data\s*=\s*"(.*)";/)[1]
更新:此正则表达式还将匹配包含转义引号的字符串,例如
“\“foo\”
,只要这些引号后面没有分号。要使其起作用,结束引号后面必须紧跟分号

或者,您也可以从匹配的字符串中排除双引号(使用
[^”]*
而不是
*
),并在正则表达式中省去分号。

这如何

plaintext.match(/var\s+data\s*=\s*"(.*)";/)[1]
更新:此正则表达式还将匹配包含转义引号的字符串,例如,
“\“foo\”
,只要这些引号后面没有分号。要使其起作用,结束引号后面必须紧跟分号


或者,您也可以从匹配的字符串中排除双引号(使用
[^”]*
而不是
*
),并从正则表达式中省去分号。

我不确定是否正确,但
var plaintext=“var data=\“foobardoobar\”;var regex=newregexp(“var data=\”(.{0,})\”;”);console.log(明文.match(regex)[1])应该这样做。我不确定我是否正确,但是
var plaintext=“var data=\“foobardoobar\”;var regex=newregexp(“var data=\”(.{0,})\”;”);console.log(明文.match(regex)[1])应该这样做。我不确定我是否正确,但是
var plaintext=“var data=\“foobardoobar\”;var regex=newregexp(“var data=\”(.{0,})\”;”);console.log(明文.match(regex)[1])应该这样做。