import re
regex = re.compile(r"^[+|-]?(90.0{6}|[0-8]?[0-9].[0-9]{6})$", flags=re.MULTILINE)
test_str = ("// Valid values\n\n"
"-90.000000\n"
"90.000000\n"
"1.000000\n"
"-1.000000\n"
"9.999999\n"
"88.888888\n"
"77.777777\n"
"66.666666\n"
"55.555555\n"
"44.444444\n"
"33.333333\n"
"22.222222\n"
"11.111111\n"
"00.000000\n"
"-9.999999\n"
"-88.888888\n"
"-77.777777\n"
"-66.666666\n"
"-55.555555\n"
"-44.444444\n"
"-33.333333\n"
"-22.222222\n"
"-11.111111\n\n"
"// Invalid values\n\n"
"-90.000001\n"
"-90.000010\n"
"-90.000100\n"
"-90.001000\n"
"-90.010000\n"
"-90.100000\n"
"-91.000000\n"
"90.000001\n"
"90.000010\n"
"90.000100\n"
"90.001000\n"
"90.010000\n"
"90.100000\n"
"91.000000\n"
"+190.000000\n"
"190.000000\n"
"-190.000000\n"
"-90.00000\n"
"-90.0000\n"
"-90.000\n"
"-90.00\n"
"-90.0\n"
"-90.\n"
"-90\n"
"-9\n"
"190.000000\n"
"90.00000\n"
"90.0000\n"
"90.000\n"
"90.00\n"
"90.0\n"
"90.\n"
"90\n"
"9\n")
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