import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?ms)^AELIST.*?(?=^[A-Z]|\\Z)";
final String string = "AELIST 1 5159 5160 7007 7008 7015 7016 7023+ \n"
+ "+ 7024 7031 7032 7039 7040 7047 7048 7055+ \n"
+ "+ 7056 7063 7064 7071 7072 7079 7080 7087+ \n"
+ "+ 7088 7095 7096 7103 7104 7111 7112 7119+ \n"
+ "+ 7120 7127 7128 7135 7136 7143 7144 7151+ \n"
+ "+ 7152 7159 7160 7167 7168 7175 7176 7183+ \n"
+ "+ 7184 7191 7192 7199 7200 7207 7208 7215+ \n"
+ "+ 7216 7223 7224 7231 7232 \n"
+ "SET1 2 6159 6160 9007 9008 9015 9016 9023+ \n"
+ "+ 9024 9031 9032 9039 9040 9047 9048 9055+ \n"
+ "+ 9056 9063 9064 9071 9072 9079 9080 9087+ \n"
+ "+ 9088 9095 9096 9103 9104 9111 9112 9119+ \n"
+ "+ 9120 9127 9128 9135 9136 9143 9144 9151+ \n"
+ "+ 9152 9159 9160 \n"
+ "AELIST 5 11017 11018 11023 11024 11029 11030 11035+ \n"
+ "+ 11036 11041 11042 11047 11048 11053 11054 11059+ \n"
+ "+ 11060 11065 11066 11071 11072 11077 11078 11083+ \n"
+ "+ 11084 11089 11090 11095 11096 11101 11102 11107+ ";
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