Проверка русских символов в регулярных выражениях

Категория: / DEV Блог / PHP (LAMP)
Один из часто задаваемых вопросов - как в никс окружении проверить регуляркой наличие кирилицы в строке.

$russian_str = "Тест";
if (preg_match("/^[".chr(0x7F)."-".chr(0xff)."_-]+$/",$russian_str))
{
   echo 'Это по-русски..';
} else {
   echo 'Это нет...';
}


На unix системах можно попробовать сменить локаль на setlocale(LC_ALL, 'ru_RU.CP1251');
и использовать кириллицу в чистом виде [а-яА-Я],

либо применять юникод модификатор u (если проверяемый текст в unicode|UTF-8).

preg_match('@регулярное выражение@u');


Смотрите также:
Регулярные выражения для чайников.