Войти

Показать полную графическую версию : Использование русского диапазона регулярных выражений


btx
10-04-2006, 18:04
Есть входящие данные $text = 'RussiaРоссия'; содержащие русский и английский текст. Необходимо обработать шаблоном используя регулярные выражения, к примеру, функцией ereg(). Можно УПРАЩЕННО составить шаблон на диапазон английских и русских букв:
$result = ereg('^[aA-zZаА-яЯ]$', $text); На сервере Windows все замечательно работает, но на *nix, увы, который не понимает русский язык отказывается принимать такую функцию и выдает сообщение об ошибке.
Как быть в такой ситуации, когда без проверки шаблона не обойтись и в любом случае используются русские символы.
---
Видел где то используют диапазон CHR кодов от русских символов, но реализовать самостоятельно не могу.

ivank
12-04-2006, 21:40
btx
Особенность диапазоно в том, что их можно применять только для латинских букв и цифр. Т.к. только эти символы гарантировано идут подряд в любой кодировке (по крайней мере реально применяемой). Все остальные символы могут быть разбросаны _как угодно_ (например, русский символы в КОИ), да и кодировок существует куча.

Поэтому есть два варианта. Неправильный: Забить все символы в квадратные скобки [абвгде...яАБ...Я]. Правильный: поставить русскую локаль и пользоваться \w.




© OSzone.net 2001-2012