# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^(RSUINTREL-[0-9]+\s+|PANGUSW-[0-9]+\s+|APRICOT-[0-9]+\s+|GEN6PANGU-[0-9]+\s+|SWFCN-[0-9]+\s+)+.*$"
test_str = ("### Should Pass Test\n\n"
"SWFCN-287 debug CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n"
"SWFCN-287 APRICOT-9999 SWFCN-0000 debug CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n"
"APRICOT-287 debug CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n"
"SWFCN-287 debug 222 test test test !!!!\n"
"GEN6PANGU-1111 Add gitlab ci\n"
"RSUINTREL-957 add test message\n\n"
"### Failed to match test\n\n"
"SWFCN-2a7 debug CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n"
"SWFCN-287APRICOT-9999 SWFCN-0000 debug CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n"
"debug CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n\n\n")
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