import re
regex = re.compile(r"(?ms)\<test\s(?P<tmp>.*?)\<\/test\>", flags=re.MULTILINE)
test_str = ("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
" <unitData endtime=\"2019-09-30T05:39:08+02:00\" equipment=\"eq1\" equipmentClass=\"eqc1\" locale=\"german\" operator=\"ADMINISTRATOR\" senderID=\"sender1\" starttime=\"2019-09-30T05:38:09+02:00\" state=\"nok\" unit=\"74375513159930675\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:noNamespaceSchemaLocation=\"unitData-1.1.xsd\">\n"
" <subUnitData position=\"1\" positionType=\"Panel Nr.\" state=\"ok\" subUnit=\"74375513159930675\">\n"
" <test description=\"A10-007 7437551\" name=\"CU102_BAY2_QR\" testResultCode=\"passed\">\n"
" <subTest name=\"Verbindung zum Pr³fling aufbauen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Initialisierung\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Fehlerflag lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"ID lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Sachnummer lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Trigger setzen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"ADC Abschalten\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" </test>\n"
" </subUnitData>\n"
" <subUnitData position=\"2\" positionType=\"Panel Nr.\" state=\"ok\" subUnit=\"74375513159930676\">\n"
" <test description=\"A10-007 7437551\" name=\"CU102_BAY2_QR\" testResultCode=\"passed\">\n"
" <subTest name=\"Verbindung zum Pr³fling aufbauen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Initialisierung\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Fehlerflag lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"ID lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Sachnummer lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Trigger setzen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"ADC Abschalten\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" </test>\n"
" </subUnitData>\n"
" <subUnitData position=\"3\" positionType=\"Panel Nr.\" state=\"ok\" subUnit=\"74375513159930678\">\n"
" <test description=\"A10-007 7437551\" name=\"CU102_BAY2_QR\" testResultCode=\"passed\">\n"
" <subTest name=\"Verbindung zum Pr³fling aufbauen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Initialisierung\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Fehlerflag lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"ID lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Sachnummer lesen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"Trigger setzen\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" <subTest name=\"ADC Abschalten\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" </test>\n"
" </subUnitData>\n"
" <subUnitData position=\"4\" positionType=\"Panel Nr.\" state=\"nok\" subUnit=\"74375513159930677\">\n"
" <test description=\"A10-007 7437551\" name=\"CU102_BAY2_QR\" testResultCode=\"failed\">\n"
" <subTest name=\"FLOAT\" testPosition=\"unknown\">\n"
" <subPositions>\n"
" <subPosition name=\"{27}\"/>\n"
" </subPositions>\n"
" <subTestResult testResultClass=\"fail\" testResultCode=\"failed\"/>\n"
" </subTest>\n"
" <subTest name=\"Components not tested\" testPosition=\"unknown\">\n"
" <subTestResult testResultClass=\"pass\" testResultCode=\"passed\"/>\n"
" </subTest>\n"
" </test>\n"
" </subUnitData>\n"
" </unitData>\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