const regex = /\:\d{2}\s(?<Severity>\w+)\s\(\d+-\d+\)\s\<(?<Type>\w+)\>\s\[\w+\]\s(?<Status>\w+)\:\w+\:(?<Server>[^\,]*)\,(?:[^\;]*[\;]){2}DNS\:(?<DNS>[^\;]*)\;IP\:(?<IP>[^\;]*)\;(?:[^\\]*[\\])(?<UN>\w+)\;\w+\:(?<USERDN>[^\,]*)/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('\\:\\d{2}\\s(?<Severity>\\w+)\\s\\(\\d+-\\d+\\)\\s\\<(?<Type>\\w+)\\>\\s\\[\\w+\\]\\s(?<Status>\\w+)\\:\\w+\\:(?<Server>[^\\,]*)\\,(?:[^\\;]*[\\;]){2}DNS\\:(?<DNS>[^\\;]*)\\;IP\\:(?<IP>[^\\;]*)\\;(?:[^\\\\]*[\\\\])(?<UN>\\w+)\\;\\w+\\:(?<USERDN>[^\\,]*)', 'gm')
const str = `2019-01-11T07:41:10.400-06:00 INFO (4440-4444) <DesktopControlJMS> [Audit] PENDING:Server:cn=c111111f-0111-4111-a111-cc01111111,ou=servers,dc=vdi,dc=vm,dc=int;Pool:cn=gvlcsnav4,ou=servergroups,dc=vdi,dc=vm,dc=int;DNS:gvlcsnav4025.ad.nitro.com;IP:10.111.111.111;IP6:null;USER:LP\\un12802;USERDN:cn=s-2-2-22-59222222-343222254-204222229-4722223,cn=foreignsecurityprincipals,dc=vdi,dc=vm,dc=int;BROKERUSERSID:s-2-2-22-59222222-343222254-204222229-4722223;
2019-01-11T07:46:06.049-06:00 INFO (4444-1300) <DesktopControlJMS> [Audit] STARTUP:Server:cn=eeeeed6-eeeb2-eee3-beed-56eeeeeeeb77,ou=servers,dc=vdi,dc=vm,dc=int;Pool:cn=gvclsnav2,ou=servergroups,dc=vdi,dc=vm,dc=int;DNS:gvclsnav2069.ad.nitro.com;IP:10.990.999.1;IP6:null;
2019-01-11T07:36:03.140-06:00 INFO (1444-0622) <MachineControler> [Audit] PENDING:Server:cn=7677778c-d777-4777-a777-587777772d,ou=servers,dc=vdi,dc=vm,dc=int;Pool:cn=gvsview01,ou=servergroups,dc=vdi,dc=vm,dc=int;DNS:gvsview030276.ad.nitro.com;IP:10.122.222.221;IP6:null;USER:LP\\UNVA33E;USERDN:cn=s-2-2-22-5999990-343999999-204999989-469993,cn=foreignsecurityprincipals,dc=vdi,dc=vm,dc=int;BROKERUSERSID:s-2-2-22-5999990-343999999-204999989-469993;`;
// 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