【发布时间】:2019-07-25 12:43:17
【问题描述】:
我正在过滤 nodejs 中的文本文件,“匹配”正则表达式在过滤后的数组上给了我错误
var fs = require("fs");
var finalarray = [];
var data = [];
var data1 = [];
fs.readFile('dataforparsing', function (err, buf) {
finalarray = buf.toString();// convert the object into the string
data = finalarray.split("\n");// splitting based on new line
for (i = 0; i < data.length; i++) {
if (data[i].match(/sessionid:/g) && !data[i].match(/Input/g)) {// filtering of the rows
data1[i] = data[i].toString();
console.log(data1[i] + "\n");
}
}
var data3 = [];
for (i = 0; i < data1.length; i++) {
data3[i] = data1[i].match(/[0-9]{13}/g);
console.log(data3[i] + "\n");
}
});
期望代码也应该在最后一个循环中工作,但它会在“data1[i].match(..)”处出错,并根据 REGEX 表达式打印过滤后的输出。
【问题讨论】:
-
错误是什么?
-
你不使用 filter() 的原因 ??
-
"data3[i] = data1[i].match(/[0-9]{13}/g);"给出 TypeError: Cannot read property 'match' of undefined.
-
我想根据正则表达式匹配 (/[0-9]{13}/g) 将数据数组中的值过滤为 data1 数组。希望你能理解问题
-
请运行此代码。这是最小的可重现代码,仅修改文件中的内容。
标签: javascript node.js regex pattern-matching