const regex = /<Item TimeStamp="(?<timestamp>\d*:\d*:\d*.\d*)"[[:blank:]]Duration="(?<duration>\d*:\d*:\d*.\d*)"[[:blank:]]Line="(?<scriptline>\d*)"[[:blank:]]File="(?<scriptfilename>.*)"[[:blank:]]Command="(?<command_name>\w*)"[[:blank:]]Type="(?<severity>\w*)">(?<message>[\D]*)\t(?<time>\d*.\d*)<\/Item>/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('<Item TimeStamp="(?<timestamp>\\d*:\\d*:\\d*.\\d*)"[[:blank:]]Duration="(?<duration>\\d*:\\d*:\\d*.\\d*)"[[:blank:]]Line="(?<scriptline>\\d*)"[[:blank:]]File="(?<scriptfilename>.*)"[[:blank:]]Command="(?<command_name>\\w*)"[[:blank:]]Type="(?<severity>\\w*)">(?<message>[\\D]*)\\t(?<time>\\d*.\\d*)<\\\/Item>', 'g')
const str = `<Item TimeStamp="00:33:12.88" Duration="00:00:00.00" Line="87" File="all_test_v2.tws" Command="print" Type="Info">Loading Result screen time is: -1</Item>
<Item TimeStamp="00:32:32.10" Duration="00:00:00.00" Line="40" File="all_test_v2.tws" Command="print" Type="Info">Loading Search screen time 0.8045754</Item>
<Item TimeStamp="00:32:31.16" Duration="00:00:00.00" Line="28" File="all_test_v2.tws" Command="print" Type="Info">Loading Splash screen time is: 4.3964327</Item>
`;
// 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