Javascript 如何使用nodejs从日志文件中提取以字符为前缀和后缀的所有字符串?
我是Javascript 如何使用nodejs从日志文件中提取以字符为前缀和后缀的所有字符串?,javascript,node.js,Javascript,Node.js,我是Nodejs的新手,我想知道是否有一个Nodejs库,可以用来提取前缀为^和后缀为$的字符串,即^abcde&。每个事件都需要存储到数组中,然后将它们打印到控制台中 以下是my.log文件的内容: 0:0:0:0:0:0:0:1 - - [10/Sep/2015:11:34:54:455 +0100] ^somerandomstring1$ 200 0:0:0:0:0:0:0:1 - - [10/Sep/2015:11:34:55:455 +0100] ^somerandomstring2$
Nodejs
的新手,我想知道是否有一个Nodejs库,可以用来提取前缀为^
和后缀为$
的字符串,即^abcde&
。每个事件都需要存储到数组中
,然后将它们打印到控制台中
以下是my.log
文件的内容:
0:0:0:0:0:0:0:1 - - [10/Sep/2015:11:34:54:455 +0100] ^somerandomstring1$ 200
0:0:0:0:0:0:0:1 - - [10/Sep/2015:11:34:55:455 +0100] ^somerandomstring2$ 404
0:0:0:0:0:0:0:1 - - [10/Sep/2015:11:34:56:455 +0100] ^somerandomstring3$ 500
理想情况下,这些字符串中的每一个都需要存储到一个数组中,然后我想迭代它们并将它们打印到控制台上,如:
控制台:
>somerandomstring1
>somerandomstring1
>somerandomstring1
我还没有用过它,但我想它会解决你的问题
但是,事实上,模块不是必需的。JavaScript的本机函数可能就足够了
中有一个关于JavaScript正则表达式的优秀指南
但模块也可以是一种选择 你可能不需要一个模块。使用正则表达式的简单函数就可以做到这一点
function extract(str) {
var re = /\^([^$]*)\$/g;
var ret = [];
do {
m = re.exec(str);
if (m) {
ret.push(m[1]);
}
} while (m);
return ret;
}
此函数将为您提供一个数组,其中只包含^…$之间的字符串;然后,在它上面迭代并添加您想要的前缀(例如“>>”)就很简单了