import re
regex = re.compile(r"^(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+) \[(?<loglevel>\w)\] (?<message>.*)", flags=re.MULTILINE)
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 = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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