const regex = /(?P<date>\w{3}\s+\d{1,2}\s\d\d:\d\d:\d\d)\s+(?P<device>\S+)\s+(?:[^:]+:\s)@@(?P<sid_number>\d+),(?P<sid>[^,]+),(?:"zoneUUID"="(?P<zone_uuid>[^"]+)",|"apMac"="(?P<ap_mac>[^"]+)",|"clientMac"="(?P<client_mac>[^"]+)",|"bssid"="(?P<bssid>[^"]+)",|"userId"="(?P<user_id>[^"]*)",|"wlanId"="(?P<wlanId>\d+)",|"iface"="(?P<iface>\S+)",|"tenantUUID"="(?P<tenantUUID>\S+)"|"apName"="(?P<ap_name>[^"]+)",|"rogueMac"="(?P<rogue_mac>[^"]+)",|"ssid"="(?P<ssid>[^"]*)",|"wlanId"="(?P<wlan_id>[^"]+)",|"radio"="(?P<radio>[^"]+)",|"channel"="(?P<channel>[^"]+)",|"timestamp"="(?P<timestamp>\d{10})[^"]*",|"apLocation"="(?P<ap_location>[^"]+)",?|"timeZone"="(?P<time_zone>[^"]+)",|"zoneName"="(?P<zone_name>[^"]+)",?|"reason"="(?P<reason>[^"]+)",|"fwVersion"="(?P<fwVersion>[^"]+)",|"model"="(?P<model>[^"]+)",|"nodeName"="(?P<node_name>[^"]+)",|"licenseServerName"="(?P<licenseServerName>[^"]+)",?)+"/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?P<date>\\w{3}\\s+\\d{1,2}\\s\\d\\d:\\d\\d:\\d\\d)\\s+(?P<device>\\S+)\\s+(?:[^:]+:\\s)@@(?P<sid_number>\\d+),(?P<sid>[^,]+),(?:"zoneUUID"="(?P<zone_uuid>[^"]+)",|"apMac"="(?P<ap_mac>[^"]+)",|"clientMac"="(?P<client_mac>[^"]+)",|"bssid"="(?P<bssid>[^"]+)",|"userId"="(?P<user_id>[^"]*)",|"wlanId"="(?P<wlanId>\\d+)",|"iface"="(?P<iface>\\S+)",|"tenantUUID"="(?P<tenantUUID>\\S+)"|"apName"="(?P<ap_name>[^"]+)",|"rogueMac"="(?P<rogue_mac>[^"]+)",|"ssid"="(?P<ssid>[^"]*)",|"wlanId"="(?P<wlan_id>[^"]+)",|"radio"="(?P<radio>[^"]+)",|"channel"="(?P<channel>[^"]+)",|"timestamp"="(?P<timestamp>\\d{10})[^"]*",|"apLocation"="(?P<ap_location>[^"]+)",?|"timeZone"="(?P<time_zone>[^"]+)",|"zoneName"="(?P<zone_name>[^"]+)",?|"reason"="(?P<reason>[^"]+)",|"fwVersion"="(?P<fwVersion>[^"]+)",|"model"="(?P<model>[^"]+)",|"nodeName"="(?P<node_name>[^"]+)",|"licenseServerName"="(?P<licenseServerName>[^"]+)",?)+"', 'gm')
const str = `Nov 26 19:09:07 vsz01 Core: @@205,clientInactivityTimeout,"apMac"="90:3a:72:2f:10:70","clientMac"="00:34:da:1d:7f:83","ssid"="DIGITROL COLABORADORES","bssid"="90:3a:72:af:10:7c","userId"="fgfhf","wlanId"="14","iface"="wlan34","tenantUUID"="839f87c6-d116-497e-afce-aa8157abd30c","apName"="DIGITROL AP R310-18329","clientIP"="192.168.25.62","userName"="0034da1d7f83","vlanId"="1","radio"="a/n/ac","encryption"="WPA2-AES","osType"="Android","hostname"="android-6d4a9dbc81fecfcf","firstAuth"="1543259331","associationTime"="1543252166","ipAssignTime"="1543259332","disconnectTime"="1543259346","sessionDuration"="15","disconnectReason"="4","rxFrames"="26","rxBytes"="3551","txFrames"="54","txBytes"="5738","peakRx"="3551","peakTx"="5738","rssi"="12","receivedSignalStrength"="-93","Instantaneous rssi"="0","Xput"="0","fwVersion"="3.6.1.0.354","model"="R310","wlanGroupUUID"="3ab644a3-7eee-11e8-b12e-000000939903","zoneUUID"="2babcf8c-ab2a-4283-aedc-3ac00c525734","zoneName"="Digitrol","timeZone"="BRT+3BRST,M10.3.0/00:00,M2.3.0/00:00","apLocation"="","apGps"="","apIpAddress"="192.168.25.8","apIpv6Address"="","apGroupUUID"="1bc2200a-2251-4a04-a7db-0f888e3fa776","domainId"="1f90466b-4b53-4b19-b0ed-47c8778f269c","idealEventVersion"="3.5.0","apDescription"=""`;
// 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