import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\s*(\\d{1}\\s{9})*(\\r|\\n|\\r\\n)\\s*[0-9]{80}[\\r|\\n|\\r\\n]0\\s*CMD\\s(?<CMD>.{18})\\sADJUSTMENT\\sMONETARY\\sSCREEN\\s{8}IAJMON\\s{3}PAGE\\s(?<PAGECURRENT>\\d)\\sOF\\s(?<PAGETOTAL>\\d)\\s*[\\r|\\n|\\r\\n]1\\s{2}SCREEN\\s(?<SCREEN>.{2})\\s{2}ACTION\\s(?<ACTION>.{2})\\s{2}RA\\sNUM\\s(?<RANUMBER>.{10})\\s*OVRD\\s(?<OVRD>.{2})INVOICE\\sNUM\\s(?<INVOICENUM>.{15})[\\r|\\n|\\r\\n]2.*RES\\sNUM\\s(?<RESNUMBER>[A-Z0-9]{11})\\s(?<COMPANY>\\w{1})\\s*[\\r|\\n|\\r\\n]3\\s*CHK\\sOUT\\sLOC\\s(?<CHECKOUTLOC>.{3})\\s*DATE\\s(?<CHECKOUTDATE>.{7})\\s*TIME\\s(?<CHECKOUTTIME>.{5})\\s*MLS\\/KM\\s*(?<CHECKOUTMILEAGE>.{8})\\s*FUEL\\s(?<CHECKOUTFUEL>.{1})\\s*[\\r|\\n|\\r\\n]4\\s*CHK\\s*IN\\s*LOC\\s(?<CHECKINLOCATION>.{3})\\s*DATE\\s(?<CHECKINDATE>.{7})\\s*TIME\\s(?<CHECKINTIME>.{5})\\s*MLS\\/KM\\s(?<CHECKINMILEAGE>.{8})\\s*FUEL\\s(?<CHECKINFUEL>.{1})\\s*[\\r|\\n|\\r\\n]5\\s*AGREED\\sRETURN\\s(?<AGREEDRETURNLOC>[A-Z0-9]{3})\\s*DATE\\s(?<AGREEDRETURNDATE>.{7})\\s*TIME\\s(?<AGREEDRETURNTIME>.{5})\\s*MLS\\/KM\\sDRIVEN\\s(?<MILEAGEDRIVEN>.{12})[\\r|\\n|\\r\\n]6\\s*WIZARD\\sNUM\\s(?<WIZARDNUMBER>.{7})\\sAWD\\sNUM\\s(?<AWDNUMBER>.{8})\\s";
final String string = " 0 1 2 3 4 5 6 7 \n"
+ " 01234567890123456789012345678901234567890123456789012345678901234567890123456789\n"
+ "0 CMD ADJUSTMENT MONETARY SCREEN IAJMON PAGE 1 OF 3 \n"
+ "1 SCREEN 10 ACTION DS RA NUM E839020313 OVRD INVOICE NUM \n"
+ "2 E839020313 DS RES NUM 42423337ZA5 A \n"
+ "3 CHK OUT LOC CPT DATE 02JUL16 TIME 10:38 MLS/KM 11110700 FUEL 8 \n"
+ "4 CHK IN LOC CPT DATE 05JUL16 TIME 15:36 MLS/KM 511 FUEL \n"
+ "5 AGREED RETURN CPT DATE 05JUL16 TIME 16:00 MLS/KM DRIVEN 404 \n"
+ "6 WIZARD NUM AWD NUM E0193000 METH OF PAY CLUB \n"
+ "7 CUSTOMER NAME SMITH,NEILMR FAX NUM CD N SP/IR N \n"
+ "8 RATE CODE YWI A HRLY 184.21 DALY 184.21 WKY 1172.81 MTH 0.00 \n"
+ "9 UPGRADE AMT RES QUOTED PRICE 643.33 RES/RENTAL T \n"
+ "10 DEFAULT RATE DESC \n"
+ "11 TRAVEL AGNY ACCT AV873132130055 VOUCHER NUM E42423337 ARC/IATA 0149575L \n"
+ "12 TRAVEL AGNY AMT 629.00 BILLING MONTH/YEAR RENT TYP RMOTE CI \n"
+ "13 COMMISSION AMT 177.41 COMMISSION SOURCE O EQUIP TYP CAR RNTL \n"
+ "14 AGENCY VAT TAX 0.00 TOUR VOUCHER BUY/SELL B CUST VOCH \n"
+ "15 COMMISSION QST BUY/SELL PURCHASE/SOLD \n"
+ "16 COMMISSION REV 806.41 RA SOLD COUNTRY INVOICE Y \n"
+ "17 COMMISS BASIS 3 TOUR VOUCHER SOLD COUNTRY GB DB/CR NOTE Y \n"
+ "18 ORI CHKOUT CURR 575.97 ORI CHKOUT CURR CODE SAR WRITE-OFF \n"
+ "19 ORI BILLING CURR ORI BILLING CURR CODE \n"
+ "20 EMPL ID PIN NUM DCC CURR DCC RATE \n"
+ "21 71 RA HAS NO PRIOR ADJUSTMENT 143 RA HAS 1 PAYMENT(S) \n"
+ "22 135 LICENSEE CHECKOUT/LICENSEE OWNER 235RA HAS BEEN MODIFIED AFTER CHECKOUT \n"
+ "23 \n";
final Pattern pattern = Pattern.compile(regex);
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