const regex = /((D|d)(L|l).(G|g)(E|e)(R|r)(|(M|m)(A|a)(N|n))|(G|g)(E|e)(R|r)(|(M|m)(A|a)(N|n))(|.)(|((R|r)(E|e)((U|u)(P|p)|(P|p)(A|a)(C|c)(K|k))|(U|n)(C|c)(U|u)(T|t)|(P|p)(R|r)(O|o)(P|p)(E|e)(R|r)|(S|s)(Y|y)(N|n)(C|c)(|(E|e)(D|d))|(|(D|d)(D|d))(|.)\d(|.)\d|(D|d)(U|u)(B|b)(|(B|b)(E|e)(D|d))|(A|a)(C|c)\d))(|.)(|((R|r)(E|e)((U|u)(P|p)|(P|p)(A|a)(C|c)(K|k))|(U|n)(C|c)(U|u)(T|t)|(P|p)(R|r)(O|o)(P|p)(E|e)(R|r)|(S|s)(Y|y)(N|n)(C|c)(|(E|e)(D|d))|(|(D|d)(D|d))(|.)\d(|.)\d|(D|d)(U|u)(B|b)(|(B|b)(E|e)(D|d))|(A|a)(C|c)\d))(|.)(|((R|r)(E|e)((U|u)(P|p)|(P|p)(A|a)(C|c)(K|k))|(U|n)(C|c)(U|u)(T|t)|(P|p)(R|r)(O|o)(P|p)(E|e)(R|r)|(S|s)(Y|y)(N|n)(C|c)(|(E|e)(D|d))|(|(D|d)(D|d))(|.)\d(|.)\d|(D|d)(U|u)(B|b)(|(B|b)(E|e)(D|d))|(A|a)(C|c)\d))(|.)(D|d)(L|l))/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('((D|d)(L|l).(G|g)(E|e)(R|r)(|(M|m)(A|a)(N|n))|(G|g)(E|e)(R|r)(|(M|m)(A|a)(N|n))(|.)(|((R|r)(E|e)((U|u)(P|p)|(P|p)(A|a)(C|c)(K|k))|(U|n)(C|c)(U|u)(T|t)|(P|p)(R|r)(O|o)(P|p)(E|e)(R|r)|(S|s)(Y|y)(N|n)(C|c)(|(E|e)(D|d))|(|(D|d)(D|d))(|.)\\d(|.)\\d|(D|d)(U|u)(B|b)(|(B|b)(E|e)(D|d))|(A|a)(C|c)\\d))(|.)(|((R|r)(E|e)((U|u)(P|p)|(P|p)(A|a)(C|c)(K|k))|(U|n)(C|c)(U|u)(T|t)|(P|p)(R|r)(O|o)(P|p)(E|e)(R|r)|(S|s)(Y|y)(N|n)(C|c)(|(E|e)(D|d))|(|(D|d)(D|d))(|.)\\d(|.)\\d|(D|d)(U|u)(B|b)(|(B|b)(E|e)(D|d))|(A|a)(C|c)\\d))(|.)(|((R|r)(E|e)((U|u)(P|p)|(P|p)(A|a)(C|c)(K|k))|(U|n)(C|c)(U|u)(T|t)|(P|p)(R|r)(O|o)(P|p)(E|e)(R|r)|(S|s)(Y|y)(N|n)(C|c)(|(E|e)(D|d))|(|(D|d)(D|d))(|.)\\d(|.)\\d|(D|d)(U|u)(B|b)(|(B|b)(E|e)(D|d))|(A|a)(C|c)\\d))(|.)(D|d)(L|l))', 'gm')
const str = `Ballers.S04E04.Voll.gelinkt.GERMAN.DUBBED.DL.1080p.WebHD.x264-TVP
Der.Denver.Clan.2017.S02E01.German.DL.1080p.WEB.x264-BiGiNT
Modern.Family.S08E17.Pig.Moon.Rising.GERMAN.DUBBED.DL.720p.WebHD.x264-TVP
Hawaii.Five-0.S08E12.READNFO.German.DD51.Dubbed.DL.1080p.AmazonHD.x264-TVS
Star.Wars.Resistance.S01E01E02.Der.Rekrut.German.DD20.DL.Dubbed.720p.WEB-DL.h264-GDR
Baymax.Robowabohu.in.Serie.S01E16.DL.German.Dubbed.WEBRiP.x264-GDR
The.Originals.S05E03.Verlass.mich.nicht.GERMAN.5.1.DUBBED.DL.AC3.1080p.WEB-DL.h264-TvR`;
// 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