import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "<PurposeOfUse csd-code=\\\"(?<ATNAPurposeOfUse>.+?)\\\"";
final String string = "2677 <85>1 2021-01-20T11:59:04+00:00 localhost icw-chr 1436 IHE+RFC-3881 - <?xml version=\"1.0\" encoding=\"UTF-8\"?><AuditMessage><EventIdentification EventActionCode=\"R\" EventDateTime=\"2021-01-20T11:59:04.678Z\" EventOutcomeIndicator=\"8\"><EventID csd-code=\"110106\" codeSystemName=\"DCM\" originalText=\"Export\" /><EventTypeCode csd-code=\"ITI-43\" codeSystemName=\"IHE Transactions\" originalText=\"Retrieve Document Set\" /><PurposeOfUse csd-code=\"NORM\" codeSystemName=\"2.16.756.5.30.1.127.3.10.5\" originalText=\"Normal Access\" /></EventIdentification><ActiveParticipant UserID=\"https://api.test.xad.ch/pxs/webservices/xca/initiatingGateway/iti43RetrieveDocuments\" UserName=\"svrz1975.spital.so.ch\" UserIsRequestor=\"false\" NetworkAccessPointID=\"10.250.76.81\" NetworkAccessPointTypeCode=\"2\"><RoleIDCode csd-code=\"110153\" codeSystemName=\"DCM\" originalText=\"Source Role ID\" /></ActiveParticipant><ActiveParticipant UserID=\"<7601003961638@xua.hin.ch>\" UserName=\"<7601003961638@xua.hin.ch>\" UserIsRequestor=\"true\"><RoleIDCode csd-code=\"HCP\" codeSystemName=\"2.16.756.5.30.1.127.3.10.6\" originalText=\"Behandelnde(r)\" /></ActiveParticipant><ActiveParticipant UserID=\"7601003961638\" UserName=\"Marco Studer\" UserIsRequestor=\"true\"><RoleIDCode csd-code=\"HCP\" codeSystemName=\"2.16.756.5.30.1.127.3.10.6\" originalText=\"Behandelnde(r)\" /></ActiveParticipant><ActiveParticipant UserID=\"http://www.w3.org/2005/08/addressing/anonymous\" AlternativeUserID=\"1436\" UserIsRequestor=\"false\" NetworkAccessPointID=\"api.test.xad.ch\" NetworkAccessPointTypeCode=\"1\"><RoleIDCode csd-code=\"110152\" codeSystemName=\"DCM\" originalText=\"Destination Role ID\" /></ActiveParticipant><AuditSourceIdentification AuditEnterpriseSiteID=\"2.16.756.5.30.1.194\" AuditSourceID=\"t01-x-chrapp-1\"><AuditSourceTypeCode csd-code=\"9\" codeSystemName=\"DCM\" originalText=\"Other\" /></AuditSourceIdentification><ParticipantObjectIdentification ParticipantObjectID=\"761337610339478800^^^&2.16.756.5.30.1.127.3.10.3&ISO\" ParticipantObjectTypeCode=\"1\" ParticipantObjectTypeCodeRole=\"1\"><ParticipantObjectIDTypeCode csd-code=\"2\" codeSystemName=\"RFC-3881\" originalText=\"Patient Number\" /></ParticipantObjectIdentification><ParticipantObjectIdentification ParticipantObjectID=\"2.25.319915379891245844588550626280213087638\" ParticipantObjectTypeCode=\"2\" ParticipantObjectTypeCodeRole=\"3\"><ParticipantObjectIDTypeCode csd-code=\"9\" codeSystemName=\"RFC-3881\" originalText=\"Report Number\" /><ParticipantObjectDetail type=\"Repository Unique Id\" value=\"Mi4xNi43NTYuNS4zMC4xLjE5NC4zLjMuMg==\" /><ParticipantObjectDetail type=\"ihe:homeCommunityID\" value=\"dXJuOm9pZDoyLjE2Ljc1Ni41LjMwLjEuMTk0\" /></ParticipantObjectIdentification></AuditMessage>\n\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