import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:^|(?<=.(?:[\\s])))([л]+[\\s-]*[о]+[\\s-]*[х]+)+(?:$|[\\s-])";
final String string = "лох плох ппп лох лоох ллох л о х \n"
+ "лох\n"
+ "плох\n"
+ "ппп\n"
+ "лох\n"
+ "лоох\n"
+ "ллох лох лохло х лохло хлам\n"
+ "л о х\n"
+ "л оо х\n"
+ "лоох\n"
+ "лox\n"
+ "лооx\n"
+ "лооох\n"
+ "плохо\n"
+ "неплохо\n"
+ "лохотрон\n"
+ "блоха\n"
+ "заглох \n"
+ "он оглох от взыва\n"
+ "он лоооох меня\n"
+ "он л-ох меня\n"
+ "он лОх меня\n"
+ "тыЛОХчего\n"
+ "металлохимия\n"
+ "маслохранилище\n"
+ "мой лохматый друг\n"
+ "лох";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE);
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