import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?ms)\\<test\\s(?P<tmp>.*?)\\<\\/test\\>";
final String string = "<?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"
+ " ";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html