import re
regex = re.compile(r"^(?!0{3})(?!6{3})[0-8]\d{2}-(?!0{2})\d{2}-(?!0{4})\d{4}$", flags=re.MULTILINE)
test_str = ("762-37-6334\n"
"429-08-8462\n"
"519-75-9429\n"
"117-08-6495\n"
"544-12-9823\n"
"841-01-5655\n"
"494-82-9724\n"
"568-11-2312\n"
"420-42-8078\n"
"396-09-7229\n"
"869-57-0924\n"
"609-44-0934\n"
"578-20-1520\n"
"835-87-3325\n"
"636-03-4578\n"
"482-19-1418\n"
"364-60-1676\n"
"780-23-8549\n"
"265-33-9416\n"
"221-88-6838\n"
"550-13-2720\n"
"336-93-2610\n"
"193-47-3307\n"
"480-82-8373\n"
"750-66-0817\n"
"122-68-3192\n"
"673-84-7164\n"
"191-03-8274\n"
"412-41-9768\n"
"888-21-9775\n"
"805-53-9154\n"
"150-26-0934\n"
"880-42-1378\n"
"853-41-1922\n"
"467-22-3453\n"
"220-91-4157\n"
"657-24-3167\n"
"229-17-5111\n"
"411-38-6337\n"
"453-61-4836\n"
"123-27-0915\n"
"105-56-0050\n"
"646-82-7847\n"
"105-17-8892\n"
"301-70-3833\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