Диапазон символов в регулярном выражении

190
02 января 2019, 07:30

Какие символы включает регулярное выражение [а-яА-Я]+? Известно, что оно не включает символы ё и ъ. И для того, чтобы охватить весь алфавит русского языка нужно писать [а-яА-ЯёЁъЪ]+ ? Или есть какие-то ещё символы алфавита русского языка, которое это выражение не включает? Как узнать весь диапазон включённых в регулярное выражение символов?

Answer 1

Регулярные выражения Java поддерживают стандарт регулярных выражений для Юникода (Unicode® Technical Standard #18 UNICODE REGULAR EXPRESSIONS). Соответственно, диапазоны символов считаются по кодовым позициям в Юникоде.

Буквы русского алфавита занимают в Юникоде позиции с 0410 по 044F, кроме букв «ё» и «Ё», которые по историческим причинам поставлены на позиции не соответствующие русскому алфавиту (найдите их в таблице символов). Это и вызывает необходимость указывать их отдельно.

Есть какие-то ещё символы алфавита русского языка, которое это выражение не включает

Нет, даже для твердого знака не нужно делать исключения.

Как узнать весь диапазон включённых в регулярное выражение символов?

По кодовым позициям. В Java числовое значение символа (char) соответствует его позиции в Юникоде. Соответственно, можно задать переменные char для границ диапазона и пройтись циклом по всем символам. Например, следующий код выводит все символы, входящие в диапазон от «А» до «Я» и их позиции в Юникоде.

for(char ch = 'А'; ch<='Я'; ch++) {
    System.out.println(ch +" ("+ ((int) ch)+")");
}
READ ALSO
Мониторинг загрузки сервера на сайте

Мониторинг загрузки сервера на сайте

Как получить данные из файла /proc/stat средствами php и вывести их на сайт(админку), при этом чтобы соответствующий скрипт находился в каталоге...

185
Проблема с парсингом сайта

Проблема с парсингом сайта

Есть сайт, на нем есть input в котором в поле value генерится код с каждым обновлением страницыМне нужно получить этот код через парсер

136
decodeURIComponent (javascript) vs urldecode(php)

decodeURIComponent (javascript) vs urldecode(php)

собственно пытаюсь повторить код Javascript в PHP

187