# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"([A-Z]{1}\d{2}[A-Z]{1}$|\d{1}\d{2}[A-Z]{1}$|\d{7}[A-Z]{1}$|\d{1,2}\-\d{1,2}$)"
test_str = ("FPN 0085110A\n"
"FPN 0091010Y\n"
"FPN 0095100J\n"
"FPN 0095130B\n"
"FPN 0097660F\n"
"AGEBAND10YR 0-9\n"
"AGEBAND10YR 10-19\n"
"AGEBAND10YR 20-29\n"
"AGEBAND10YR 30-39\n"
"AGEBAND10YR 40-49\n"
"AGEBAND10YR 50-59\n"
"AGEBAND10YR 60-69\n"
"AGEBAND10YR 70-79\n"
"DRGGrpV6X 801A\n"
"DRGGrpV6X 801B\n"
"DRGGrpV6X A09B\n"
"DRGGrpV6X A11A\n"
"DRGGrpV6X A11B\n"
"DRGGrpV6X A12Z")
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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