const regex = /(?'Date'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})\s*\[(?'Level'ERROR.|WARN|INFO|DEBUG).*\]\s*\[(?'Thread'\d*).*\]\s*(?'Message'.*)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?\'Date\'\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3})\\s*\\[(?\'Level\'ERROR.|WARN|INFO|DEBUG).*\\]\\s*\\[(?\'Thread\'\\d*).*\\]\\s*(?\'Message\'.*)', 'gm')
const str = `2016-09-26 11:42:47,350 [INFO ][40 ] Info, StartAsync endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage empty...
2016-09-26 11:42:48,411 [INFO ][40 ] Endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage empty.
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage...
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/handlerloghandler/handlerlogsmessage, sleep until 2016-09-26 10:43:48Z
2016-09-26 11:42:48,411 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:48,411 [INFO ][4 ] Info, StartAsync endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest empty...
2016-09-26 11:42:48,411 [INFO ][4 ] Endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest empty.
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest...
2016-09-26 11:42:48,411 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagedetecteddigest, sleep until 2016-09-26 10:43:48Z
2016-09-26 11:42:48,411 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:51,515 [INFO ][40 ] Info, StartAsync endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest empty...
2016-09-26 11:42:51,515 [INFO ][40 ] Endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest empty.
2016-09-26 11:42:51,515 [INFO ][4 ] Info, StartAsync endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared empty...
2016-09-26 11:42:51,515 [INFO ][4 ] Endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared empty.
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest...
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/platform/poisonmessagedigesthandler/poisonmessagereplayeddigest, sleep until 2016-09-26 10:43:51Z
2016-09-26 11:42:51,515 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared...
2016-09-26 11:42:51,515 [INFO ][57 ] Info, finished processing endpoint sv.queue://sqlservicebus/costascribe/int02handler/int02messageprepared, sleep until 2016-09-26 10:43:01Z
2016-09-26 11:42:51,515 [INFO ][57 ] Observer Current Message Task...
2016-09-26 11:42:55,524 [INFO ][40 ] Info, StartAsync endpoint sv.queue://sqlservicebus/costascribe/int03handler/int03messageprepared empty...
2016-09-26 11:42:55,524 [INFO ][40 ] Endpoint sv.queue://sqlservicebus/costascribe/int03handler/int03messageprepared empty.
`;
// 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