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

