Перед нами стоит казалось бы простейшая задача — из некого предложения вывести слова, где больше 3 букв.

String str = "В лесу родилась ёлочка";
		ArrayList<String> list = new ArrayList<>();
		Pattern p = Pattern.compile("[a-zA-Zа-яА-Я]{4,}");
		Matcher m = p.matcher(str);
		          
		while(m.find()) {
		    list.add(m.group());
		 
		}
		 
		System.out.println("Найденные данные " + list);

Самое интересное здесь в выводе на консоль:
Найденные данные [лесу, родилась, лочка]

Почему «лочка», а не «ёлочка» ? Где буква «ё» ?
Проблема в том, что буква «ё» в кодировках расположена отдельно от алфавита и её в регулярке надо
указывать ЯВНО.

[a-zA-Zа-яА-ЯёЁ]

Все, после этого норм вывод на консоль:

Найденные данные [лесу, родилась, ёлочка]

Реклама