import re
regex = re.compile(r"(^127\.0\.0\.1[\s]+|^0\.0\.0\.0[\s]+)([0-9a-z_.-]+$)|^([0-9a-z_.-]+$)", flags=re.MULTILINE | re.IGNORECASE)
test_str = ("# hpHosts - FSA only\n"
"#\n"
"# The following are hosts in the hpHosts database with the FSA classification ONLY.\n"
"#\n"
"127.0.0.1 localhost #IPv4 localhost\n"
"127.0.0.1 localhost\n"
"::1 localhost #IPv6 localhost\n"
"#\n"
"# BAD SITES START HERE\n"
"#\n"
"0.0.0.0 very#badexample.com\n"
"very#badexample.com\n"
"domain@with.com\n"
"doma$in\n"
"AuThedMine.cOm\n"
"domain.0cf\n"
"127.0.0.1 0-0-----------------------------------------------------------0.com\n"
"127.0.0.1 0-google.com\n"
"127.0.0.1 00-lawyer.com\n"
"127.0.0.1 0000.support\n"
"0.01.2.13.3.sydneypropertyinvestors.com\n"
"0.01.2.23.3.sydneypropertyinvestors.com\n"
"000.9.009.09.ekurbani.com\n"
"000.9.019.09.ekurbani.com\n"
"000000-0.000webhostapp.com\n"
"00004563.000webhostapp.com\n"
"000m8ih.wcomhost.com\n"
"000m8n1.wcomhost.com\n"
"000m8pk.wcomhost.com\n"
"000m9w3.wcomhost.com\n"
"000macu.wcomhost.com\n"
"000magu.wcomhost.com\n"
"000map9.wcomhost.com\n"
"000may2.wcomhost.com\n"
"000mhl7.wcomhost.com\n"
"000mhpe.wcomhost.com\n"
"000mhpg.wcomhost.com\n"
"1xbet86.com\n"
"1xbet87.com\n"
"1xbet90.com\n"
"1xbet31.com\n"
"1xbet46.com\n"
"1xbet28.com\n"
"1xbet35.com\n"
"1xbet49.com\n"
"nejakyhost.cz\n"
"0.0.0.0 cnhv.co\n"
"0.0.0.0 coin-hive.com\n"
"0.0.0.0 coinhive.com\n"
"0.0.0.0 authedmine.com\n"
"0.0.0.0 api.jsecoin.com\n"
"0.0.0.0 load.jsecoin.com\n"
"0.0.0.0 server.jsecoin.com\n"
"0.0.0.0 miner.pr0gramm.com\n"
"0.0.0.0 minemytraffic.com\n"
"0.0.0.0 crypto-loot.com\n"
"0.0.0.0 cryptaloot.pro\n"
"0.0.0.0 cryptoloot.pro\n"
"0.0.0.0 coinerra.com\n"
"0.0.0.0 coin-have.com\n"
"0.0.0.0 minero.pw\n"
"0.0.0.0 minero-proxy-01.now.sh\n"
"0.0.0.0 minero-proxy-02.now.sh\n"
"0.0.0.0 minero-proxy-03.now.sh\n"
"0.0.0.0 api.inwemo.c\n"
"127.0.0.1 sfdfsdfsdfsdfsd\n"
"pool.pebblemedia.adhese.com")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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 Python, please visit: https://docs.python.org/3/library/re.html