import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^[^\\S\\r\\n]*(.*\\bMISSILE \\d.*(?:\\r?\\n(?!.*\\b(?:MISSILE|A\\/C) \\d).*)*\\r?\\n[ ]+A\\/C[ ]+[0-9]{1,2}[ ]+IS[ ]+KILLED[ ]+AT[ ]+TIME[ ]+[0-9]{0,4}\\.[0-9]{0,4})";
final String string = " MISSILE 010102 FUZES AGAINST 2 RNG= 0.0 T= 82.846\n"
+ " TERMINAL POSITION: X= -75933.67 Y= -4469.98 Z= 25000.09\n"
+ " LAUNCH POSITION: X= -127017.19 Y= -12934.89 Z= 25506.47 MODE CMD_GUIDED_DES_RDR\n"
+ " AVERAGE VELOCITY= 3375.35\n"
+ " TERMINAL VELOCITY= 2545.36\n"
+ " LAUNCHER POSITION: X= -113879.58 Y= -16624.14 Z= 24476.13\n"
+ " FPOLE= 39848.34\n"
+ " GUIDANCE TRACKBANK 1 HAS TRACK ON FUZEE SEEKERS CONTRIBUTING INFRA-RED\n"
+ " ENDGAME SEEKER: IR 1\n"
+ " A/C 2 IS KILLED AT TIME 82.907\n"
+ " MISSILE 010102 FUZES AGAINST 3 RNG= 0.0 T= 82.846\n"
+ " TERMINAL POSITION: X= -75933.67 Y= -4469.98 Z= 25000.09\n"
+ " LAUNCH POSITION: X= -127017.19 Y= -12934.89 Z= 25506.47 MODE CMD_GUIDED_DES_RDR\n"
+ " AVERAGE VELOCITY= 3375.35\n"
+ " TERMINAL VELOCITY= 2545.36\n"
+ " LAUNCHER POSITION: X= -113879.58 Y= -16624.14 Z= 24476.13\n"
+ " FPOLE= 39848.34\n"
+ " GUIDANCE TRACKBANK 1 HAS TRACK ON FUZEE SEEKERS CONTRIBUTING INFRA-RED\n"
+ " ENDGAME SEEKER: IR 1\n"
+ " A/C 3 IS KILLED AT TIME 82.907";
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