# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^TEXT\h([A-Z0-9]{14})"
test_str = ("Material B7E671143D244B\n"
"====================================\n"
"TEXT 2F3139D816C34D 1\n"
"TEXT B6A968EF2505A2 1\n"
"TEXT 35206697A04F91 1\n"
"TEXT EB485AF490D83D 1\n"
"TEXT 0DAB42294BD9B3 1\n"
"TEXT 3D6525BEE360E1 0\n\n"
"Material D6906B886B06E3\n"
"====================================\n"
"TEXT 0CCECCCCFB62AE 1\n"
"TEXT 1E14CB29AB43F0 1\n"
"TEXT FB7F0DCE9B5950 1\n\n"
"Material 431831490FD5C9\n"
"====================================\n"
"TEXT 9D77B6474696D8 1\n"
"TEXT D04DEE5DF130A4 1\n"
"TEXT B6A968EF2505A2 1\n"
"TEXT 8C37245A4F0F81 1\n"
"TEXT A39FAFFC5ABC06 1\n"
"TEXT D24199644F2EE6 1")
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