Есть ли возможность узнать lastIndex в matchAll чтобы в конце вырезать конец который не сопоставился, в данном примере .
В результате нужны все сопоставленные строки и остаток который не сопоставился.
Написал вот пример, но может есть решение лучше?
const line = '<RECORD>Record 1</RECORD><RECORD>Record 2</RECORD><REC...>';
const records = line.matchAll(/(?:<RECORD>)(?<record>.*?)<\/RECORD>/g);
const result = [];
let lastIndex = 0;
for (const record of records) {
lastIndex = record.index + record[0].length;
result.push(record.groups.record);
}
const lineEnd = line.slice(lastIndex);
console.log(result);
console.log(lineEnd);