const regex = /PAN-OS\s*ver:\s*(?<PanOS_Version>\S+)\s*Panorama ver:\s*(?<Panorama_Version>\S+)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('PAN-OS\\s*ver:\\s*(?<PanOS_Version>\\S+)\\s*Panorama ver:\\s*(?<Panorama_Version>\\S+)', 'gm')
const str = `Panorama push to device:013101010578 for device-group: Durham_IPV6_INET_SVCS succeeded. JobId=2480530
Panorama push to device:007257000068919 for device-group: Azure-China-Internet-North succeeded. JobId=2480524
Panorama push to device:016401009013 for device-group: Austin_Experience_Lounge succeeded. JobId=2480530
extracted. In the case of the above 3 examples, the 3 values extracted are "Durham_IPV6_INET_SVCS", "Azure-China-Internet-North" and "Austin_Experience_Lounge" respectively.
Client authentication successful PAN-OS ver: 9.1.11-h3 Panorama ver:10.1.6-h3 Client IP: 10.68.196.211 Server IP: 10.58.217.123 Client CN: 013101004861" "Client authentication successful PAN-OS ver: 9.1.11 Panorama ver:10.1.6-h6 Client IP: 10.58.90.53 Server IP: 10.58.90.200 Client CN: 010401005346`;
// 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