#java #регулярные_выражения
Необходимо составить регулярное выражение для проверки наличия кириллических символов в строке. Как такое можно реализовать?
Ответы
Ответ 1
Не совсем ясен вопрос проверка вхождения,только ли из символов кириллицы (к слову кириллица понятие растяжимое) состоит строка или нечто другое.Но по сути вопроса выражение типа [а-яА-Я]+ вернет Вам true при наличии в строке хотя бы одного включения перечисленных символов. Ну и от себя дополню ответ методом проверки наличия символов кириллицы в строке: public boolean isCyrillic(String s) { boolean result = false; for (char a : s.toCharArray()) { if (Character.UnicodeBlock.of(a) == Character.UnicodeBlock.CYRILLIC) { result = !result; break; } } return result; } UPD: к ответу @Aleksei Chibisov Да не вернет. Собственно к этому и ремарка "кириллица понятие растяжимое" - самих символов которые относятся к данной группе масса. К кириллическим алфавитам относятся: Белорусский,Болгарский,Сербский,Македонский,Русский,Украинский ...и такие символы как є i w ... и куча других...Как по мне стоит в данном случае использовать именно UnicodeBlock - там присутствуют расширения A и B c версии 1.7 И реакция метода представленного выше на символ 'ё' или 'є' - будет trueОтвет 2
Для работы с регулярными выражениями в Java существуют классы Pattern и Matcher: String regex = "[а-яёА-ЯЁ]+"; String str = "Работа не walk - работа work"; Pattern pattern = Pattern.compile(regex); Matcher m = pattern.matcher(str); if (m.find()){ //делаем что-то } К предыдущему ответу добавлю что [а-яА-Я]+ не включает символы ё и Ё
Комментариев нет:
Отправить комментарий