node.js - 节点js字符串解析器
问题描述
我有一个日志数组。
[ '1539024146 17827 add number 1',
'1539024146 18826 start calculation',
'1539024146 18826 end calculation',
'1539024146 18826 14',
'1539024146 18826 update number 1 1',
'1539024146 18826 start calculation',
'1539024146 18826 end calculation,
'1539024146 18826 4',
'1539024146 19825 remove number']
我需要解析此数组以仅使用命令获取数组。例子:
['add number 1',
'update number 1 1',
'remove number']
我的尝试:
var fs = require('fs');
var array = fs.readFileSync('log.txt').toString().split('\n');
for(var i = 0; i < array.length; i++){
//removing time
array[i] = array[i].replace(/\d{10}[ ]\d{5}/, "");
}
console.log(array);
解决方案
一种方法可能是迭代您的数组,然后删除任何不包含指示命令的关键字的日志条目。我们可以为此使用正则表达式替换:
(add|start|end|update|remove)
这是一个代码示例:
var array = [ '1539024146 17827 add number 1',
'1539024146 18826 start calculation',
'1539024146 18826 end calculation',
'1539024146 18826 14',
'1539024146 18826 update number 1 1',
'1539024146 18826 start calculation',
'1539024146 18826 end calculation',
'1539024146 18826 4',
'1539024146 19825 remove number'];
var i = array.length;
while (i--) {
if (!/(add|start|end|update|remove)/.test(array[i])) {
array.splice(i, 1);
}
}
console.log(array);
推荐阅读
- node.js - Nodejs 代码无法在 Windows10 上构建,但可以在 MacOS 上运行。可能是什么原因?
- java - 如何修复我的奇偶奇偶程序 java 代码它写的是偶数或奇数,还有数字
- cocoa - macOS:NSButton 复选标记不会出现在 NSToolbar 中
- mysql - SQL 不懂 IN 子句的算法
- python - 列表的子列表
- dialogflow-es - 从其他设备在 google home 上开始对话
- python - 如何使用python获取多个文件夹中的文件夹列表
- java - 在不可访问的线程中放置断点会强制它运行
- django - 如何使用 DEBUG=False 在 heroku 中运行 django 应用程序
- python - 如何在 python 代码中包含方程模型