import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "([\\d]+/[\\d\\w]+\\s)(([\\w\\d]+/[\\w\\d]+)\\s((?:[\\w]{1}[\\d]{4}\\s[\\w]{1}[\\d]{5}\\s\\-\\s)+[\\w]{1}[\\d]{4}\\s[\\w]{1}[\\d]{5}\\s))+";
final String string = "VA ADVISORY\n"
+ "STATUS: EXER\n"
+ "DTG: 20211116/0600Z\n"
+ "VAAC: LONDON\n"
+ "VOLCANO: EYJAFJALLAJOKULL 372020\n"
+ "PSN: N6338 W01938\n"
+ "AREA: ICELAND\n"
+ "SUMMIT ELEV: 1651M\n"
+ "ADVISORY NR: 2021/009\n"
+ "INFO SOURCE: ICELAND MET OFFICE\n"
+ "AVIATION COLOUR CODE: RED\n"
+ "ERUPTION DETAILS: EXERCISE VOLCEX21 - EYJAFJALLAJOKULL ERUPTION\n"
+ "OBS VA DTG: 16/0600Z\n"
+ "OBS VA CLD: SFC/FL200 N4550 W04415 - N6356 W01927 - N7353 E05847 -\n"
+ "N4025 E05735 - N4550 W04415 MOV SE 15KT FL200/350 N5343 W03145 -\n"
+ "N6355 W01932 - N7446 E05944 - N6250 E05925 - N5255 W02531 - N5343\n"
+ "W03145 MOV SE 40KT\n"
+ "FCST VA CLD +6 HR: 16/1200Z SFC/FL200 N4517 W04623 - N6356 W01924 -\n"
+ "N7750 E07729 - N3856 E06031 - N4517 W04623 FL200/350 N4839 W04904 -\n"
+ "N7025 E01017 - N7505 E07954 - N6139 E06549 - N4839 W04904\n"
+ "FCST VA CLD +12 HR: 16/1800Z SFC/FL200 N4010 E03817 - N4900 W04529 -\n"
+ "N7112 W00641 - N7617 E09941 - N4010 E03817 FL200/350 N4919 W05700 -\n"
+ "N7300 E03329 - N7732 E09626 - N5936 E09143 - N4919 W05700\n"
+ "FCST VA CLD +18 HR: 17/0000Z SFC/FL200 N4901 W05420 - N7235 E00056 -\n"
+ "N7558 E09708 - N3934 E05131 - N4901 W05420 FL200/350 N4933 W03842 -\n"
+ "N5436 W04127 - N7433 E03732 - N7935 E11430 - N6503 E10238 - N4933\n"
+ "W03842\n"
+ "RMK: EXERCISE VOLCEX21 - EYJAFJALLAJOKULL ERUPTION CONTINUES,\n"
+ "RECENTLY INCREASING TO APPROX 8KM\n"
+ "NXT ADVISORY: NO LATER THAN 20211116/1200Z";
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