Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
Regex NodeJS将行分隔字符串拆分为对象_Regex_Node.js - Fatal编程技术网

Regex NodeJS将行分隔字符串拆分为对象

Regex NodeJS将行分隔字符串拆分为对象,regex,node.js,Regex,Node.js,我正在加载一个文件的内容,如下所示: one-apple two-banana three-orange 我希望返回一个键值对象。以下是到目前为止我得到的结果,但它只返回一个空对象: var regex = /([\\w-]+)\\-([\\w-]+)/g; var match, results = {}; while((match = regex.exec(data)) !== null){ results[match[1]] = match[2]; } 代码中唯一错误的是rege

我正在加载一个文件的内容,如下所示:

one-apple
two-banana
three-orange
我希望返回一个键值对象。以下是到目前为止我得到的结果,但它只返回一个空对象:

var regex = /([\\w-]+)\\-([\\w-]+)/g;
var match, results = {};

while((match = regex.exec(data)) !== null){
   results[match[1]] = match[2];
}

代码中唯一错误的是regexp。应该是:

var regex = /([\w-]+)\-([\w-]+)/g;
regexp中的
\\
表示符号本身。所以,
[\\w]
的意思是
\
w
,而不是像您预期的那样
[a-zA-Z]

对于每个
\
符号,只有一个原因可以转义-如果要将regexp存储在字符串中。因此,以下代码也将起作用:

var regex = new RegExp('([\\w-]+)\\-([\\w-]+)', 'g');