Регулярное выражение для латинских и русских букв для UTF-8

Если касается кодировки cp866, то мы можем посмотреть таблицу символов, посмотреть следование символов этих символов в таблице, и составить простую регулярку, перебирая непрерывные диапазоны:

[A-Za-zА-пр-ё]+

Для UTF-8 ничего другого не приходит в голову как:

[A-Za-zАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя]+

А можно ли как-то компактнее для UTF-8?


Ответы (2 шт):

Автор решения: Majestio

Спасибо, SlimRG, действительно в UTF-8, если глянуть на диапазон - еще проще получается:

[A-Za-zА-яЁё]+
→ Ссылка
Автор решения: Wiktor Stribiżew

См. таблицу Юникода и составляйте необходимый вам символьный класс с выбранными диапазонами:

[A-Za-zА-яЁё]

Иногда при проблемах с кодировкой лучше использовать запись вида \uXXXX:

[A-Za-z\u0410-\u044F\u0401\u0451]

Подробности

Английские буквы: [A-Za-z] (но не [A-z]! См. Почему диапазон A-z включает в себя дополнительные символы, кроме букв?)

введите сюда описание изображения

Русские буквы: [А-яЁё]

введите сюда описание изображения

→ Ссылка