import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?: # Start of group:\n"
+ " \\b # Match start of a word\n"
+ " (?: # Start of inner group:\n"
+ " [A-Z][a-z]* # Either match an uppercase word\n"
+ " | # or\n"
+ " (?:a[nts]|the|by|for|i[nt]| # one of these \"special\" words\n"
+ " o[fnr]|to|up|and|but|nor)\n"
+ " ) # End of inner group\n"
+ " \\b # Match end of word\n"
+ " \\s+ # Match one or more whitespace characters\n"
+ ")+ # Match one or more of the above.";
final String string = "Admit to Patient bla bla bla bla\n"
+ "Hello There bla bla bla bla\n"
+ "Get There by Noon bla bla bla bla\n"
+ "Get There By Noon please don't be late\n"
+ "Hello for Everyone on Here hope you are doing good\n"
+ "Hello For Everyone On Here hope you are doing good\n"
+ "Admit To Patient should be matched";
final Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS);
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