const regex = /(^127\.0\.0\.1[\s]+|^0\.0\.0\.0[\s]+)([0-9a-z_.-]+$)|^([0-9a-z_.-]+$)/gmi;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(^127\\.0\\.0\\.1[\\s]+|^0\\.0\\.0\\.0[\\s]+)([0-9a-z_.-]+$)|^([0-9a-z_.-]+$)', 'gmi')
const str = `# hpHosts - FSA only
#
# The following are hosts in the hpHosts database with the FSA classification ONLY.
#
127.0.0.1 localhost #IPv4 localhost
127.0.0.1 localhost
::1 localhost #IPv6 localhost
#
# BAD SITES START HERE
#
0.0.0.0 very#badexample.com
very#badexample.com
domain@with.com
doma\$in
AuThedMine.cOm
domain.0cf
127.0.0.1 0-0-----------------------------------------------------------0.com
127.0.0.1 0-google.com
127.0.0.1 00-lawyer.com
127.0.0.1 0000.support
0.01.2.13.3.sydneypropertyinvestors.com
0.01.2.23.3.sydneypropertyinvestors.com
000.9.009.09.ekurbani.com
000.9.019.09.ekurbani.com
000000-0.000webhostapp.com
00004563.000webhostapp.com
000m8ih.wcomhost.com
000m8n1.wcomhost.com
000m8pk.wcomhost.com
000m9w3.wcomhost.com
000macu.wcomhost.com
000magu.wcomhost.com
000map9.wcomhost.com
000may2.wcomhost.com
000mhl7.wcomhost.com
000mhpe.wcomhost.com
000mhpg.wcomhost.com
1xbet86.com
1xbet87.com
1xbet90.com
1xbet31.com
1xbet46.com
1xbet28.com
1xbet35.com
1xbet49.com
nejakyhost.cz
0.0.0.0 cnhv.co
0.0.0.0 coin-hive.com
0.0.0.0 coinhive.com
0.0.0.0 authedmine.com
0.0.0.0 api.jsecoin.com
0.0.0.0 load.jsecoin.com
0.0.0.0 server.jsecoin.com
0.0.0.0 miner.pr0gramm.com
0.0.0.0 minemytraffic.com
0.0.0.0 crypto-loot.com
0.0.0.0 cryptaloot.pro
0.0.0.0 cryptoloot.pro
0.0.0.0 coinerra.com
0.0.0.0 coin-have.com
0.0.0.0 minero.pw
0.0.0.0 minero-proxy-01.now.sh
0.0.0.0 minero-proxy-02.now.sh
0.0.0.0 minero-proxy-03.now.sh
0.0.0.0 api.inwemo.c
127.0.0.1 sfdfsdfsdfsdfsd
pool.pebblemedia.adhese.com`;
// 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