Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

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

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Русские буквы в регулярном выражении
Имя
Сообщение << Старые топики   Новые топики >>
Русские буквы в регулярном выражении - 2009-06-30 07:20:05.903333   
ncome

Сообщений: 43
Оценки: 0
Присоединился: 2008-09-13 09:22:59.690000
Как в регулярное выражение вставить русские буквы
php без поддержки русского и шаблон \w* не помогает
добавлял АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя
тоже не помогло

if(isset($_POST['Content']))
{ $Content=stripslashes(htmlspecialchars($_POST['Content']));
    if(preg_match("/^[a-zA-Z0-9]+$/", $Content))
     {Хорошо}
    else
     {Плохо}
}
Post #: 1
RE: Русские буквы в регулярном выражении - 2009-06-30 09:59:29.533333   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
Обычно хватает [а-я] с флагом /i

Попробуй использовать \w*
Post #: 2
RE: Русские буквы в регулярном выражении - 2009-06-30 10:48:41.506666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
А кодировки? $Content и шаблон в одной кодировке?
Post #: 3
RE: Русские буквы в регулярном выражении - 2009-07-01 00:37:20.650000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
Мысль ещё бродит такая: а как у preg_* с unicode? И не в юникоде ли у тебя файлик? Почему-то мне кажется, что с однобайтовыми кодировками preg_* должны работать правильно не замечая подвоха. Проблемы могут быть разве что с тем, что порядок русских букв в кодировке как правило отличается от алфавитного, то есть [а-я] либо будет работать совсем криво (скажем с koi8-r) или ограниченно криво, ибо 'Ё' не на месте. А вот многобайтовые или мультибайтовые стопудов требуют от preg_* специального подхода к вопросу.
Post #: 4
RE: Русские буквы в регулярном выражении - 2009-07-01 08:43:23.566666   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333

quote:

ORIGINAL: rgo

Мысль ещё бродит такая: а как у preg_* с unicode? И не в юникоде ли у тебя файлик? Почему-то мне кажется, что с однобайтовыми кодировками preg_* должны работать правильно не замечая подвоха. Проблемы могут быть разве что с тем, что порядок русских букв в кодировке как правило отличается от алфавитного, то есть [а-я] либо будет работать совсем криво (скажем с koi8-r) или ограниченно криво, ибо 'Ё' не на месте. А вот многобайтовые или мультибайтовые стопудов требуют от preg_* специального подхода к вопросу.

Я всегда работаю с UTF-8, проблем не было.
Post #: 5
RE: Русские буквы в регулярном выражении - 2009-07-01 09:36:18.830000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: zhuk
quote:

ORIGINAL: rgo
Мысль ещё бродит такая: а как у preg_* с unicode? И не в юникоде ли у тебя файлик? Почему-то мне кажется, что с однобайтовыми кодировками preg_* должны работать правильно не замечая подвоха. Проблемы могут быть разве что с тем, что порядок русских букв в кодировке как правило отличается от алфавитного, то есть [а-я] либо будет работать совсем криво (скажем с koi8-r) или ограниченно криво, ибо 'Ё' не на месте. А вот многобайтовые или мультибайтовые стопудов требуют от preg_* специального подхода к вопросу.

Я всегда работаю с UTF-8, проблем не было.

Мои поздравления! В твоей системе, как и в моей, библиотечка перловых регекспов собрана с поддержкой utf8.
Post #: 6
RE: Русские буквы в регулярном выражении - 2009-07-01 15:12:18.636666   
ncome

Сообщений: 43
Оценки: 0
Присоединился: 2008-09-13 09:22:59.690000
Проблема была и с кодировкой тоже
суть не в ней
банально не поставил пробел между …0-9 АБВГДЕ…..
и если слов больше одного ничего не происходило
Вот окончательное решение

if(isset($_POST['Content'])) {$Content=stripslashes(htmlspecialchars($_POST['Content']));
 if(preg_match("/^[a-zA-Z0-9 АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя!?;:)(]+$/", $Content))
{Хорошо ;}
else
{Плохо ;}}


Post #: 7
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Русские буквы в регулярном выражении







Связаться:
Вопросы по сайту / xakep@glc.ru

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