import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?P<mesini>\\d{2})(?P<diaini>\\d{2})(?P<horaini>\\d{2})(?P<minini>\\d{2})\\s(?P<duracaosegundo>\\d{5})\\s\\d{4}\\s(\\w|\\s)\\s{6}\\s\\s(?<rota>(\\d{4})|\\s{4})\\s{6,18}(?<numerob>\\d{4})\\s(?<ramal>\\d{4,8})\\s{20,24}(?P<senha>(\\d{6}|\\s{6}))\\s{8}\\d{2}\\s(?<tronco>(\\d{5}|\\s{5}))(?<nodetrunk>\\d{4})\\n";
final String string = "06191520 00102 0000 J 4776 6512 00 4776\n"
+ " \n"
+ "06191522 00118 0000 4770 6512 00 024017001\n"
+ " \n"
+ "06191535 00037 0000 I 6512 98311871 00 6512\n"
+ "06191532 00000 0000 B 6512 98311871 00 \n"
+ " \n"
+ "06191529 00141 0000 M 0 2470 999308509 6512 00 002002003\n"
+ " \n"
+ "06191555 01854 0000 M 0 2470 33485083 6512 00 002002003\n"
+ " \n"
+ "06191655 00151 0000 M 0 2470 01128983434 6512 00 002002003\n"
+ "06191656 00011 0000 M 0 2470 01128983434 6512 00 002002009\n"
+ "06191658 00130 0000 T 0 2470 01128983434 4776 00 002002009\n"
+ "06191701 00137 0000 M 0 2470 01128983434 6512 00 002002009\n"
+ "06191701 00000 0000 0 2470 01128983434 4776 00 002002009\n"
+ " \n"
+ "06191632 00034 0000 J 4776 6512 00 4776\n"
+ "06191632 00034 0000 J 4776 6512 00 4776\n"
+ "06191634 00203 0000 T 0 2470 999308509 4776 00 002002001\n"
+ " \n"
+ "06191630 00001 0000 J 6361 6512 00 6361\n"
+ "06191630 00001 0000 J 6361 6512 00 6361\n"
+ " \n"
+ "06191644 00009 0000 M 0 2470 33283828 6512 00 002002007\n"
+ "06191645 00136 0000 T 0 2470 33283828 4776 00 002002007\n"
+ " \n"
+ "06191632 00001 0000 M 0 2470 999308509 6512 00 002002001\n"
+ "06191634 00203 0000 T 0 2470 999308509 4776 00 002002001\n"
+ " \n"
+ "06191656 00011 0000 M 0 2470 01128983434 6512 00 002002009\n"
+ "06191658 00130 0000 T 0 2470 01128983434 4776 00 002002009\n"
+ " \n"
+ "06191644 00009 0000 M 0 2470 33283828 6512 00 002002007\n"
+ "06191645 00136 0000 T 0 2470 33283828 4776 00 002002007\n"
+ " \n"
+ "06191632 00001 0000 M 0 2470 999308509 6512 00 002002001\n"
+ "06191634 00203 0000 T 0 2470 999308509 4776 00 002002001\n"
+ "06191652 00106 0000 M 0 2470 999308509 6512 00 002002003\n"
+ "06191652 00000 0000 0 2470 999308509 6512 00 002002003\n"
+ " \n"
+ "06191656 00011 0000 M 0 2470 01128983434 6512 00 002002009\n"
+ "06191658 00130 0000 T 0 2470 01128983434 4776 00 002002009\n"
+ "06191701 00137 0000 M 0 2470 01128983434 6512 00 002002009\n"
+ "06191701 00000 0000 0 2470 01128983434 4776 00 002002009\n"
+ " \n"
+ "06220921 00130 0000 M 0 2470 012997319079 6512 00 002002002\n"
+ " \n"
+ "06220922 00004 0000 M 0 2470 012997319079 6512 00 002002005\n"
+ "06220924 00157 0000 T 0 2470 012997319079 4776 00 002002005\n"
+ " \n"
+ "06220926 00144 0000 M 0 2470 012997319079 6512 00 002002006\n"
+ "06220926 00009 0000 0 2470 012997319079 4776 00 002002006\n"
+ " \n"
+ "06220935 00347 0000 M 0 2470 33485083 6512 578129 00 002002001\n"
+ " \n"
+ "06220938 00211 0000 M 0 2470 999308509 6512 578129 00 002002002\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