import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(degree(s)? of)(\\n?|.+?)(\\w.+|\\w?.+\\n.+)";
final String string = "MIT Sample:\n"
+ "AN EXPERIMENTAL INVESTIGATION OF\n"
+ "OIL SPREADING OVER WATER\n"
+ "by\n"
+ "Walter Suchon\n"
+ "Submitted in Partial Fulfillment\n"
+ "of the Requirements for the\n"
+ "degrees of\n"
+ "bachelor of science\n"
+ "and\n"
+ "Master of Science\n"
+ "at the\n"
+ "MASSACHUSETTS INSTITUTE OF TECHNOLOGY\n"
+ "April, 1970\n"
+ "Signature of Author\n"
+ "Department of Mechanical Engineering\n"
+ "Certified by.......\n"
+ "Thesis Supervisor\n"
+ "Accepted by\n"
+ "Chairman, Departmental Committee on Graduate Students\n"
+ "Archives\n"
+ "MASS INST. TECH.\n"
+ "SEP 10 1970\n"
+ "LIBRARIES\n"
+ "--------------------------------------------------------------\n"
+ "Virginia Tech Sample:\n"
+ "FUNDAMENTAL ADHESIVE STUDIES OF BLOCK COPOLYMERS\n"
+ "by\n"
+ "Margaret Mary Sheridan\n"
+ "Dissertation submitted to the Faculty of the\n"
+ "Virginia Polytechnic Institute and State University\n"
+ "in partial fulfillment of the requirements for the degree of\n"
+ "Doctor of Philosophy\n"
+ "in\n"
+ "Chemistry\n"
+ "APPROVED:\n"
+ "T.C. Ward, Chairman\n"
+ "D.W. Dwight M.A. Oglioruso\n"
+ "J.E. McGrath J.P. Wightman\n"
+ "October, 1985\n"
+ "Blacksburg, Virginia";
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