Здравствуйте, помогите разобраться с такой проблемой: preg_match_all не понимает регистр русских букв, то-есть есть например такое выражение: /яя/i по логики должно подходить и ЯЯ и яя , но почемуто не работает (подходит только 'яя') пример: 1. Регулярное выражение по-русски - не работет 2. Регулярное выражение по-английски - работет В чем может быть проблема?
Ti http://regexpr.ru/?pattern=%2F%5B%E0-%F ... 3%E0%E3%E0 preg_match_all(): Compilation failed: invalid UTF-8 string at offset 2
да строки у меня не юникод. но с setlocale почему-то тоже ни чего путного не получилось Код (Text): <?php $loc = setlocale(LC_ALL, 'ru_RU'); echo $loc; preg_match_all('/яя/i', 'ЯЯ яя', $matches); echo '<pre>'; print_r($matches); echo '</pre>'; ?> на windows выдает: Код (Text): Array ( [0] => Array ( [0] => ЯЯ [1] => яя ) ) а на linux Код (Text): ru_RU Array ( [0] => Array ( [0] => яя ) )
надо что-то типа ru_RU.CP1251 или ru_RU.KOI8-R Код (Text): hosting(440hz):~$>uname -a FreeBSD hosting.440hz.ru 6.1-RELEASE FreeBSD 6.1-RELEASE #0: Sun May 7 04:42:56 UTC 2006 root@opus.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP i386 hosting(440hz):~$>lsl /usr/share/locale/ | grep ru drwxr-xr-x 2 root wheel 512 31 май 2007 ru_RU.CP1251/ drwxr-xr-x 2 root wheel 512 31 май 2007 ru_RU.CP866/ drwxr-xr-x 2 root wheel 512 31 май 2007 ru_RU.ISO8859-5/ drwxr-xr-x 2 root wheel 512 31 май 2007 ru_RU.KOI8-R/ drwxr-xr-x 2 root wheel 512 31 май 2007 ru_RU.UTF-8/ для регулярок под UTF есть соответствующий ожификатор