Я пытаюсь заменить вхождения текста в документах на некрасивое, но нормально работающее регулярное выражение (проверено на regex101 и в редакторе, оно соответствует). Но когда я запускаю код, он не работает.
Regex101: https://regex101.com/r/rGmYpP/1
Мой код:
(async () => {
const rename = util.promisify(fs.rename);
const files = await fs.readdir('./working');
for (let i = 0; i < files.length; i++) {
const file = files[i];
const read = async (filePath) => {
const str = fs.createReadStream(filePath, 'utf8')
.pipe(new stream.Transform({
decodeStrings : false,
transform(chunk, encoding, done) {
let result = chunk.replace(/\(LAST.*\n.*\n.*\n.*UPDATE/gm, '--------------');
done(null, result);
}
}));
const tempPath = await tempWrite(str);
await rename(tempPath, filePath+'-output');
};
await read('./working/'+file);
}
})();
Пример текста:
OESHNF+Arial*1 [12 0 0 -12 0 0 ]msf
321.639 19.075 mo
(LAST )
[6.672 8.00409 8.00409 7.33191 0 ]xsh
354.938 19.075 mo
(UPDATE )
[8.664 8.00409 8.664 8.00409 7.33191 8.00409 0 ]xsh
406.945 19.075 mo
(OF )
Ожидаемый результат:
OESHNF+Arial*1 [12 0 0 -12 0 0 ]msf
321.639 19.075 mo
-------------- )
[8.664 8.00409 8.664 8.00409 7.33191 8.00409 0 ]xsh
406.945 19.075 mo
(OF )
Спасибо за помощь, надеюсь, я все предоставил.