import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?<Data_0>[ ]{13,16})(?<Data_1>[0-9]{6,9})\\s{5,6}(?<Data_2>[0-9a-zA-Z\\/.\\-_,\\n%: ]{6,720})(?: [0-9]{8} )";
final String string = " 6001908/ SAR - 125 KG 1 PC 96.00 12,000.00 \n"
+ " 32021000 BALSYN\n\n\n\n\n"
+ " 73101090 INV. REF TAX INVOICE INV DT. QTY BILL RATE\n"
+ " ACTUAL RATE RATE DIFF\n"
+ " BASIC AMT DIFF C.GST 9% UT GST 9% TOTAL DIFF.\n"
+ " AMOUNT\n"
+ " 1710125231 DH191012604017 29.10.2019 200 1,350.00\n"
+ " 1,290.00 60.00 12\n"
+ " ,000.00 1,080.00 1,080.00 14,160.00\n"
+ " 1710125233 DH191012604018 29.10.2019 203 1,350.00\n"
+ " 1,290.00 60.00 12\n"
+ " ,180.00 1,096.20 1,096.20 14,372.40\n"
+ " TOTAL 403 24,180.00 2,176.20 2,176.20 28,532.40\n\n\n\n"
+ " 73101090 200/210 LITRE NOMINAL CAPACITY NEW EMPTY\n"
+ " DRUMS MADE\n"
+ " FROM STEEL SHEET OF 1.25 MM NOMINAL\n"
+ " THICKNESS\n"
+ " COMPLETE WITH 50MM AND 20MM CLOSURE,\n"
+ " INTERNALLY\n"
+ " EPOXY COATED AS PER YOUR SPECIFICATION\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