Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения и регистр русских букв. / 4 сообщений из 4, страница 1 из 1
16.04.2019, 17:02
    #39802282
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения и регистр русских букв.
Всем привет! Подскажите пожалуйста как написать регулярное выражение для поиска вхождений, без учёта регистра?

Вот пример, который в моём понимании работает не верно
Код: java
1.
2.
3.
4.
5.
6.
7.
String[] s = {"Вася", "Петя", "Dima","Дима"};
        for (String str : s) {
            Pattern p = Pattern.compile(".*с.*|.*d.*|.*д.*", Pattern.CASE_INSENSITIVE);
            if (p.matcher(str).matches()) {
                System.out.println("Найдено: " + str);
            }
        }



Вот пример который работает верно
Код: java
1.
2.
3.
4.
5.
6.
String[] s = {"Вася", "Петя", "Dima", "Дима"};
        for (String str : s) {
            if (str.toLowerCase().matches(".*с.*|.*d.*|.*д.*")) {
                System.out.println("Найдено: " + str);
            }
        }



Разница лишь в том, что во втором случае я привожу строку к нижнему регистру что соответствует регистру в регулярном выражении.

Почему не работает флаг Pattern.CASE_INSENSITIVE для русских букв в первом примере?
...
Рейтинг: 0 / 0
16.04.2019, 17:09
    #39802288
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения и регистр русских букв.
Mandarin, да там же вроде в документации сказано, что CASE_INSENSITIVE только для us-ascii кодировки .
...
Рейтинг: 0 / 0
16.04.2019, 20:41
    #39802387
Mandarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения и регистр русских букв.
Озверин,

А как для русских сделать?
...
Рейтинг: 0 / 0
16.04.2019, 22:45
    #39802406
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Регулярные выражения и регистр русских букв.
авторPattern.CASE_INSENSITIVE Enables case-insensitive matching. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. Unicode-aware case-insensitive matching can be enabled by specifying the UNICODE_CASE flag in conjunction with this flag. Case-insensitive matching can also be enabled via the embedded flag expression (?i). Specifying this flag may impose a slight performance penalty.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Регулярные выражения и регистр русских букв. / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]