const regex = /^wlan (\S+).*(?:\r?\n(?!wlan|.*? dot1 authent ).*)*\r?\n.*? dot1 authent (.+).*(?:\r?\n(?!wlan).*)*/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('^wlan (\\S+).*(?:\\r?\\n(?!wlan|.*? dot1 authent ).*)*\\r?\\n.*? dot1 authent (.+).*(?:\\r?\\n(?!wlan).*)*', 'gm')
const str = `wlan SSID1 SSID1
test2
test1
dot1 authent TESTTEST1
test3
wlan SSID2 SSID2
test21
test11
test31
wlan SSID3 SSID3
test22
test12
dot1 authent TESTTEST3
test32
wlan SSID4 SSID4
test23
test13
dot1 authent TESTTEST4
test33`;
// 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