import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "<REMITReceipt(.|\\n)*?<errorCount>0(.|\\n)*?\\/REMITReceipt>";
final String string = "\n"
+ " \n"
+ "=== Receipt_20150922_REMITTable1_V1_A0000668C.SI_1.xml.asc\n\n\n"
+ "<REMITReceipt xmlns=\"http://www.acer.europa.eu/REMIT/REMITReceiptSchema_V1.xsd\">\n"
+ " <receiptTimestamp>2015-09-22T14:25:04.009+02:00</receiptTimestamp>\n"
+ " <rrmId>\n"
+ " <acer>A0000668C.SI</acer>\n"
+ " </rrmId>\n"
+ " <receiptType>validation</receiptType>\n"
+ " <validationReceipt>\n"
+ " <reportedFilename>20150922_REMITTable1_V1_A0000668C.SI_1.xml.asc.pgp</reportedFilename>\n"
+ " <reportedFileChecksum>6445BEC781F4000C7F16F8685103B2D2D4DC500B</reportedFileChecksum>\n"
+ " <errorCount>0</errorCount>\n"
+ " <globalReceiptItem>\n"
+ " <logicalRecordIdentifier>FWG_L_Sep_15</logicalRecordIdentifier>\n"
+ " <logicalRecordType>CONTRACT</logicalRecordType>\n"
+ " <status>Accepted</status>\n"
+ " </globalReceiptItem>\n"
+ " </validationReceipt>\n"
+ "</REMITReceipt>\n\n\n"
+ "=== Receipt_20150922_REMITTable1_V1_A0000668C.SI_10.xml.asc \n\n\n"
+ "<REMITReceipt xmlns=\"http://www.acer.europa.eu/REMIT/REMITReceiptSchema_V1.xsd\">\n"
+ " <receiptTimestamp>2015-09-24T09:35:07.530+02:00</receiptTimestamp>\n"
+ " <rrmId>\n"
+ " <acer>A0000668C.SI</acer>\n"
+ " </rrmId>\n"
+ " <receiptType>validation</receiptType>\n"
+ " <validationReceipt>\n"
+ " <reportedFilename>20150922_REMITTable1_V1_A0000668C.SI_10.xml.asc.pgp</reportedFilename>\n"
+ " <reportedFileChecksum>13F5F5D46DFC659380AD1A7982CC2F05E7E66D5E</reportedFileChecksum>\n"
+ " <errorCount>0</errorCount>\n"
+ " <globalReceiptItem>\n"
+ " <logicalRecordIdentifier>4</logicalRecordIdentifier>\n"
+ " <logicalRecordType>TRADE</logicalRecordType>\n"
+ " <status>Accepted</status>\n"
+ " <logicalRecordTimestamp>2015-07-14T13:12:16.223+02:00</logicalRecordTimestamp>\n"
+ " <logicalRecordChecksum>F6A488630A39390BE48420AFFD40ED7C82D20309</logicalRecordChecksum>\n"
+ " </globalReceiptItem>\n"
+ " <globalReceiptItem>\n"
+ " <logicalRecordIdentifier>3</logicalRecordIdentifier>\n"
+ " <logicalRecordType>TRADE</logicalRecordType>\n"
+ " <status>Accepted</status>\n"
+ " <logicalRecordTimestamp>2015-07-14T13:12:16.223+02:00</logicalRecordTimestamp>\n"
+ " <logicalRecordChecksum>026F539B94346186078BA906DE2F5A9F8B3E7F6E</logicalRecordChecksum>\n"
+ " </globalReceiptItem>\n"
+ " <globalReceiptItem>\n"
+ " <logicalRecordIdentifier>2</logicalRecordIdentifier>\n"
+ " <logicalRecordType>TRADE</logicalRecordType>\n"
+ " <status>Accepted</status>\n"
+ " <logicalRecordTimestamp>2015-07-14T08:46:40.513+02:00</logicalRecordTimestamp>\n"
+ " <logicalRecordChecksum>0F8253A2A3C55520E4D63959E77286CA1E95622B</logicalRecordChecksum>\n"
+ " </globalReceiptItem>\n"
+ " <globalReceiptItem>\n"
+ " <logicalRecordIdentifier>1</logicalRecordIdentifier>\n"
+ " <logicalRecordType>TRADE</logicalRecordType>\n"
+ " <status>Accepted</status>\n"
+ " <logicalRecordTimestamp>2015-07-14T08:46:37.223+02:00</logicalRecordTimestamp>\n"
+ " <logicalRecordChecksum>198B018687C9D97CD3EECFBACA7EA9F196B5B80F</logicalRecordChecksum>\n"
+ " </globalReceiptItem>\n"
+ " </validationReceipt>\n"
+ "</REMITReceipt>\n\n\n"
+ "=!== Receipt_20150922_REMITTable1_V1_A0000668C.SI_100.xml.asc ";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
if (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