# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^[\s+-]?[^\s]+\s([^\s\n]+).*$"
test_str = (" +883620946918182db5a277fc5e328fee3030ef79 src/dobot_cr_driver (8836209)\n"
"-8fc5c05835a246d7cb46952f748efec11fbf0075 src/onrobot_driver\n"
" b5704131f0e2964e4d051d5e6f6560917c2a1969 src/ros_camera\n"
" 1ffdd69181389b14b7d6342f0c5bad3b45c5e32f src/ur_meta (1.1.5-315-g1ffdd69)\n"
" ec2beb65afd6be5373d1e21a86dd42a07e25b447 src/ur_official_driver (v2.0.0-4-gec2beb6)\n"
" 883620946918182db5a277fc5e328fee3030ef79 src/dobot_cr_driver (8836209)\n"
" 8fc5c05835a246d7cb46952f748efec11fbf0075 src/onrobot_driver (8fc5c05)\n"
" b5704131f0e2964e4d051d5e6f6560917c2a1969 src/ros_camera (heads/develop)\n"
" 1ffdd69181389b14b7d6342f0c5bad3b45c5e32f src/ur_meta (1.1.5-315-g1ffdd69)\n"
" ec2beb65afd6be5373d1e21a86dd42a07e25b447 src/ur_official_driver (v2.0.0-4-gec2beb6)")
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