const regex = /(?:['\*\?\x5c`][^\n\/]+\/|\/[^\/]+?['\*\?\x5c`]|\$[!#-\$\(\*\-0-9\?-\[_a-\{])/gm;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(?:[\'\\*\\?\\x5c`][^\\n\\\/]+\\\/|\\\/[^\\\/]+?[\'\\*\\?\\x5c`]|\\$[!#-\\$\\(\\*\\-0-9\\?-\\[_a-\\{])', 'gm')
const str = `false_positive=do+you+want+a+pizza?+with+mozzarella/pomodoro?
host=www.google.com;cd+/etc;/bin\$u/ca*+passwd
host=www.google.com;cat\$@/etc\$@/passwd
host=www.google.com;cd+/et*;/bi*\$u/ca*+passwd
host=www.google.it;/bin/c*t\$u+/etc\$u/passwd
host=www.google.it;/bin/cat\$u+/*tc\$u/passwd
host=www.google.it;cd+/etc;/bin/c*t+passwd
host=www.google.com;/bin/ca?+/et?/passwd
host=www.google.com;cat+/etc/\${a}passwd
host=www.google.com;cat+/etc/\$(echo)passwd
host=www.google.com;cat+/etc/\`echo\`passwd
host=www.google.com;cat+/etc\${a}/passwd
host=www.google.com;cat+/etc\$(echo)/passwd
host=www.google.com;cat+/etc\`echo\`/passwd
host=www.google.com;cat+/etc/passwd\${a}
host=www.google.com;cat+/etc/passwd\$(echo)
host=www.google.com;cat+/etc/passwd\`echo\`
host=www.google.com;ca?+/et?/pa??wd
host=www.google.com;cd+etc/+ca?+passwd
host=www.google.com;?at+/?tc/passwd
host=www.google.com;c\\a\\t+/e\\t\\c/pa\\s\\swd
host=www.google.com;cd+/etc;c\\at+p\\a\\sswd
host=www.google.com;cd+/etc;c'at'+p'a'sswd
host=www.google.com;c\$@at /et\$@c/pas\$@swd
host=www.google.com;c\$!at /et\$!c/pas\$!swd
host=www.google.com;c\$*at /et\$*c/pas\$*swd
host=www.google.com;c\$?at /et\$?c/pas\$?swd
host=www.google.com;c\$-at /et\$-c/pas\$-swd
host=www.google.com;c\$_at /et\$_c/pas\$_swd
host=www.google.com;c\$\$at /et\$\$c/pas\$\$swd`;
// 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