const regex = /^\[MSG\]\n[\d ]+\n{2}\d{15}\n\d{4}mV\n\d{2}\n\d,\d,\d\n?\*{0,2}(\d{10})?\*{0,2}\n{2}\[READINGS\]\n(?m:([\d\s,]*))\[MSGEND\]$/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^\\[MSG\\]\\n[\\d ]+\\n{2}\\d{15}\\n\\d{4}mV\\n\\d{2}\\n\\d,\\d,\\d\\n?\\*{0,2}(\\d{10})?\\*{0,2}\\n{2}\\[READINGS\\]\\n(?m:([\\d\\s,]*))\\[MSGEND\\]$', 'g')
const str = `[MSG]
4 031116 080423
543215432154321
3711mV
30
1,0,0
**1234567890**
[READINGS]
00451,00450,00402,06017
00000,021116 083000
00000
00000
00000
00000,031116 080000
[MSGEND]`;
// Reset `lastIndex` if this regex is defined globally
// regex.lastIndex = 0;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions