import re
regex = re.compile(r"^-?(90|[0-8]?\d)(\.\d+)?, *-?(180|1[0-7]\d|\d?\d)(\.\d+)?$", flags=re.MULTILINE)
test_str = ("-23, 25\n"
"24.53525235, 23.45235\n"
"04, -23.234235\n"
"43.91343345, 143\n"
"4, -3\n"
"9.757674732245505, 84.58947867620736\n\n"
"23.234, - 23.4234\n"
"2342.43536, 34.324236\n"
"N23.43345, E32.6457\n"
"99.234, 12.324\n"
"6.325624, 43.34345.345\n"
"0, 1,2\n"
"0.342q0832, 1.2324\n"
"-23, 195\n"
"-23, 275\n"
"-23, 185")
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