Кириллица в регулярных выражениях php
Для правильной обработки кириллицы в регулярном выражении следует указывать модификатор «u». Это модификатор для кодировки UTF-8, соответственно её и надо использовать. Другая кодировка не подойдет (не точно). Пример рабочего кода:
1 2 3 4 5 6 7 8 9 |
$re = '/^[A-Za-aА-ЯЁа-яё_]*[0-9]{4}-[0-9]{2}-[0-9]{2}\.xml/iu'; $str = 'Модификатор_u_для_Кириллицы_2019-05-15.xml'; $matches = []; $res = preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0); // Print the entire match result var_dump($res); print_r($matches); |
Если все равно не работает как вариант можно перед выполнением в начале файла указать:
1 |
<a class="extlink" href="https://www.php.net/setlocale">setlocale</a>(LC_ALL, "ru_RU.UTF-8"); |
Возможно если указать ru_RU.CP1251, то подойдет и для этой […]