import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "\\s+TRN\\s+[a-z\\d]+\\s+\\d+\\s+(\\s+\\d+\\s+)\\w+(\\s+\\d{2}\\w{3}\\s+)\\d\\s([a-z]{5})\\s+([a-z]{5})\\s[a-z\\d]+\\s+[\\D]+(\\d{4}|\\d{0})\\s+(\\d{4}|\\d{0})";
final String string = "4 TRN 2C 87 6628 AF 26NOV 4 FRLPD FRPLY HK1 1800 2007 \n"
+ "3 TRN 2C 87 5266 BI 16NOV 1 FRBOJ FRMLV HK PAST 3333 3333*\n"
+ "4 TRN 2C 87 5454 BI 19NOV 4 FRMLV FRBOJ HK PAST *\n"
+ "3 TRN 2C 87 5266 BI 16NOV 1 FRBOJ FRMLV HK PAST *\n"
+ "4 TRN 2C 87 5454 BI 19NOV 4 FRMLV FRBOJ HK PAST *\n"
+ "3 TRN 2C 87 6609 AF 23NOV 1 FRPLY FRLPD HK PAST *\n"
+ "4 TRN 2C 87 6628 AF 26NOV 4 FRLPD FRPLY HK1 1800 2007\n"
+ "3 TRN 2C 87 6817 AF 25NOV 3 FRLPD FRBZR HK1 1810 2047\n"
+ " FRLPD/LYON PART DIEU//FRBZR/BEZIERS /TGD *\n"
+ "4 TRN 2C 87 6860 AF 27NOV 5 FRBZR FRLPD HK1 1618 1850\n"
+ " FRBZR/BEZIERS//FRLPD/LYON PART DIEU /TGD *\n"
+ "3 TRN 2C 87 6201 BF 23NOV 1 FRPLY FRVLA HK PAST *\n"
+ "4 TRN 2C 87 6194 BF 24NOV 2 FRVAF FRPLY HK1 0843 1110\n"
+ " FRVAF/VALENCE VILLE//FRPLY/PARIS GARE LYON /TGD *\n"
+ "3 TRN 2C 87 3101 B 24NOV 2 FRPSL FRAEZ HK1 0653 0903\n"
+ " FRPSL/PARIS ST LAZARE//FRAEZ/LE HAVRE /TIB *\n"
+ "4 TRN 2C 87 3130 A 25NOV 3 FRAEZ FRPSL HK1 1757 2010\n"
+ " FRAEZ/LE HAVRE//FRPSL/PARIS ST LAZARE /TIB *\n"
+ "3 TRN 2C 87 6700 BF 26NOV 4 FRAEK FRPLY HK1 0542 0837\n"
+ " FRAEK/MULHOUSE VILLE//FRPLY/PARIS GARE LYON /TGD *\n"
+ "4 TRN 2C 87 9223 BF 27NOV 5 FRPLY FRAEK HK1 1823 2103\n"
+ " FRPLY/PARIS GARE LYON//FRAEK/MULHOUSE VILLE /TGL *\n"
+ "3 TRN 2C 87 5352 BF 26NOV 4 FRLPD FRDJU HK1 0629 0835\n"
+ " FRLPD/LYON PART DIEU//FRDJU/MASSY TGV /TGD *\n"
+ "4 TRN 2C 87 5233 BF 26NOV 4 FRDJU FRRNS HK1 1538 1747\n"
+ " FRDJU/MASSY TGV//FRRNS/RENNES /TGA *\n"
+ "5 TRN 2C 87 5346 BF 27NOV 5 FRRNS FRLPD HK1 1609 2030\n"
+ " FRRNS/RENNES//FRLPD/LYON PART DIEU /TGD *\n"
+ "3 TRN 2C 87 6602 BF 30NOV 1 FRLPD FRPLY HK1 0602 0813\n"
+ " FRLPD/LYON PART DIEU//FRPLY/PARIS GARE LYON /TGD *\n"
+ "4 TRN 2C 87 6629 BF 04DEC 5 FRPLY FRLPD HK1 1857 2057\n"
+ " FRPLY/PARIS GARE LYON//FRLPD/LYON PART DIEU /TGD";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
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