import re
regex = re.compile(r"^(http:\/\/|https:\/\/)?(www\.)?[a-zA-Z0-9-_\.]+\.[a-zA-Z]+(:\d+)?(\/[a-zA-Z\d\.\-_]*)*[a-zA-Z.!@#$%&=-_'\":,.?\d*)(]*$", flags=re.MULTILINE)
test_str = ("http://preview.ynot.com:80/cgibin/nd_CGI-50.cgi/YnotPhoenix/CFsMain\n"
"https://the-parrot-lands.com/ewefwe/fwefwe/jljlk%hkuj\n"
"http://twas.brillig.and.the.slithy.toves.\n"
"http://csrpathway.com\n"
"https://google.com\n"
"https://google.com:8080/\n"
"parrotlands.com/\n"
"http://www.google.com/aa\n"
"http://www.google.com\n"
"https://regex101.info\n"
"http://a.com:8080/asdfas.php?as=3729&asd=df&a=*)fw3287&asdf=223\n"
"101_regix.com/aaa/\n"
"t.me/anhnch\n"
"ig.me/aa/33/22/332833/adasd/eoe/owerw.php\n"
"ww.com/index.php?asd=339298\n"
"http://art.com/artgallery/default.asp?sid=9DF4BC0580DF11D3ACB60090271E26A8&command=freelist\n"
"http://www.drugemporium.com/cec/cstage?eccookie=@eccookie@&ecaction=de_ecwalkin&template=de_walkin.en.htm\n"
"http://www.sfgate.com/cgibin/srch_archive/dropdn_srch.cgi?template=templates2Ftypes2Ffood2Ffd_ddstemplate.shtml&item=templates%2Ftypes%2Ffood%2Ffd_ddsitem.txt&subject=RESTAURANTS%2BAND%2BREVIEW&keyword=shrimp&datesearch=366&year=")
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