const regex = /.*\d\s(\d+-\d+-\d+T\d+:\d+:\d+)(\+\d+:\d+)\s.*?\s(\d+,\d+\/\d+\/\d+) .*? .*? .*? (\d+:\d+:\d+),\d+,THREAT,(url),(\d+,\d+\/\d+\/\d+ \d+:\d+:\d+),(\d+\.\d+\.\d+\.\d+),.*/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('.*\\d\\s(\\d+-\\d+-\\d+T\\d+:\\d+:\\d+)(\\+\\d+:\\d+)\\s.*?\\s(\\d+,\\d+\\\/\\d+\\\/\\d+) .*? .*? .*? (\\d+:\\d+:\\d+),\\d+,THREAT,(url),(\\d+,\\d+\\\/\\d+\\\/\\d+ \\d+:\\d+:\\d+),(\\d+\\.\\d+\\.\\d+\\.\\d+),.*', 'g')
const str = `<14>1 2017-07-17T12:06:14+00:00 PA-VM 1,2017/07/17 - - - 05:11:16,007055000020053,THREAT,url,1,2017/07/17 05:11:16,10.10.201.182,13.107.4.50,10.10.6.64,13.107.4.50,Segmented_to_PVT,,,ms-update,vsys1,User Zone,PUB Zone,ethernet1/1,ethernet1/3,Log_Forwarding_Profile,2017/07/17 05:11:16,41324,1,56881,80,3969,80,0x40b000,tcp,alert,"au.download.windowsupdate.com/c/msdownload/update/software/secu/2017/07/windows10.0-kb4025339-x64_5_630b3945c0f68f2e3de0d8779d1e1e6c036e19ca.psf",(9999),computer-and-internet-info,informational,client-to-server,437956,0x0,10.0.0.0-10.255.255.255,United States,0,,0,,,3,,,AppThreat-0-0,0x0,,,,,,0,0,0,0,0,,PA-VM,,,,get,0,,0,,N`;
// 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