Javascript 优先考虑正则表达式中的组
我希望我的输出是var data=“THIS”;,为此,我已设法做到: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 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])代码>应该这样做。