import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?i)(?:\\w+\\W+){0,9}?(?=.*(?:plot).*|.*(?:over).*)(?:\\w+\\W+){0,9}?(?=Charlie|Muir|Charlie Muir)\\K(?:(?:Charlie|Muir|Charlie Muir)\\s+)+";
final String string = "\n"
+ "cHarlie muir charlie charlie was over the moon the the the the the tge the the the\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "over was the the the moon parker parker charlie muir charlie\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "Charlie muir charlie was near the plot\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "ChArlie was far away from the plot was far away from the\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "the plot was far away from CharLie\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "the plot was far away from CharLie muir charlie\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n\n\n"
+ "the over was far away from CHarlie muir\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "Mr cHARLIE was bowled over test was bowled after the ball\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "over the test was bowled muIR\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n"
+ "the plot the ball the slot it will plot the test was bowled MuiR\n"
+ "-the the the the the the the the the the the the the the the the the-\n\n\n";
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