# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^C\w*(?:-\d+)?(?:-\d+)?\W*111\b"
test_str = ("V0EQ21309-128 1 1001600535.99N0023642.63E 478409.56662024.7 107.91520748348\n"
"S0EQ21309-128 11 1001600532.60N0023645.31E 478450.26661919.6 0.01520748348\n"
"T0EQ21309-128 1 1 1001600452.10N0023713.63E 478880.66660664.0 0.01520748348\n"
"T0EQ21309-128 1 2 1001600452.35N0023715.00E 478901.96660671.8 0.01520748348\n"
"C0EQ21309-128 111 1001600532.07N0023645.24E 478449.06661903.2 0.01520748348\n"
"C0EQ21309-128 113 1001600532.22N0023646.01E 478461.06661907.6 0.01520748348\n"
"C012PA105 111 1003660607.77N0080416.09E 458009.87331794.0 365.21171920443\n"
"C012PA105 113 1003660607.96N0080415.12E 457997.77331800.2 365.21171920443\n"
"C012PA105 122 1004660607.65N0080415.58E 458003.57331790.5 365.31171920472\n"
"C012PA105 124 1004660607.84N0080414.62E 457991.47331796.6 365.31171920472")
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