提问者:小点点

使用nodejs从文本文件中读取位于两个字符串之间的特定数字


我是一个有SAP背景的nodejs学习者,在过去的几个星期里,我正在尝试捕获一个位于文本文件中两个字符串之间的数字。 我试图通过阅读许多示例代码来进行整理,但没有成功,看起来需要学习很多nodejs的概念。 你能帮忙写代码吗。 我尝试了下面的代码,它只是部分代码。

要求:-TextFile具有如下所示的数据,要读取文件以捕获介于“fetch:”和“records”之间的数字,并将该数字写入另一个文本文件。

27.07.202010:19:091个LUWs已确认,1个LUWs将通过函数模块27.07.202010:19:10OPEN_CURSOR JOIN_FLEXA_BKPF
27.07.202010:19:10FETCH:1000条记录
27.07.202010:19:10OPEN_CURSOR JOIN_FLEXA_BKPF
27.07.202010:19:10FETCH:193条记录
27.07.202010:19:10OPEN_CURSOR JOIN_FLEXA_BKPF
27.07.202010:19:10 FETCH:500条记录

我自己写的代码:-我可以逐行阅读,但不能得到作为如何捕获的数字。

const readline = require('readline');

const readInterface = readline.createInterface({
    input  : fs.createReadStream('BIREQFILE.txt'),
    output : process.stdout,
    console : false
});
readInterface.on('line',function(line){
    const extractNumbersFromString = line.match(/-?\d+/g);
    fs.writeFile('output.txt',extractNumbersFromString);
    
});

感谢(&S; 问候

LN

共1个答案

匿名用户

您的正则表达式需要更改为Line.match(/(?<=(fetch:))\d+/g)

null

const line = "27.07.2020|10:19:10|FETCH:1000 RECORDS"
const extractNumbersFromString = line.match(/(?<=(FETCH:))\d+/g)
console.log(extractNumbersFromString) // outputs ["1000"]