# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+) \[(?<loglevel>\w)\] (?<message>.*)"
test_str = ("2020-04-30 08:26:09.379 [I] DOPiX de.icongmbh.dope.gui.web.DopeWebGui 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (\"\"): (:) \n"
" ### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df setStatus mit Status: (I:kernel#0) \n\n"
"2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.DopeWebGui 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (\"\"): (:) \n"
" ### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df creating status gui object for stepper\n\n"
"2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.DopeWebGui 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (\"\"): (:) \n"
" ### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df transfer object for status set created!\n\n"
"2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.queue.OutputQueue 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (\"\"): (:) \n"
" ### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df +++++ adding request to queue:\n"
"##### Transfer Object Output\n"
"StatusID: 0(OK)\n"
"SourceID: 3(GUI/Poll result)\n"
"FunctionID/SubFunctionID: 10/-1\n"
"(SetStatus)\n"
"RequestAgainHint false\n"
"SessionID null\n"
"TypTransferObject class de.icongmbh.dope.gui.web.DOPEGuiStatus\n"
"ArrayTransferObjects null\n"
"##### Transfer Object Output Ends\n\n"
"2020-04-30 08:26:09.381 [I] DOPiX de.icongmbh.dope.gui.web.queue.OutputQueue 32.2.4 (22323279) debug J00000000003-aa67ca3ef26946349158ec2da0216758 (\"\"): (:) \n"
" ### GUI J00000000002-7a8d7048a4f94b78a8a5c24341d763df Added request to queue, request list size: 7 (0|3|201|-1 / 0|3|19|-1 / 0|3|7|0 / 0|3|5000|-1 / 0|3|19|-1 / 0|3|20|1 / 0|3|10|-1 / )\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