Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Регулярное выражение работает через раз
Форумы портала PHP.SU » PHP » Регулярные выражения » Регулярное выражение работает через раз

Страниц (1): [1]
 

1. kostik34 - 02 Сентября, 2014 - 14:15:12 - перейти к сообщению
Всем привет. Подскажите пожалуйста, почему вот это не срабатывает?
CODE (htmlphp):
скопировать код в буфер обмена
  1. preg_match('/^[а-я]+$/','семья')

Все буквы русские.
Решил проанализировать буквы
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo 'а '.preg_match('/^[а-я]+$/','а').'<br>';
  3.     echo 'б '.preg_match('/^[а-я]+$/','б').'<br>';
  4.     echo 'в '.preg_match('/^[а-я]+$/','в').'<br>';
  5.     echo 'г '.preg_match('/^[а-я]+$/','г').'<br>';
  6.     echo 'д '.preg_match('/^[а-я]+$/','д').'<br>';
  7.     echo 'е '.preg_match('/^[а-я]+$/','е').'<br>';
  8.     echo 'ё '.preg_match('/^[а-я]+$/','ё').'<br>';
  9.     echo 'ж '.preg_match('/^[а-я]+$/','ж').'<br>';
  10.     echo 'з '.preg_match('/^[а-я]+$/','з').'<br>';
  11.     echo 'и '.preg_match('/^[а-я]+$/','и').'<br>';
  12.     echo 'й '.preg_match('/^[а-я]+$/','й').'<br>';
  13.     echo 'к '.preg_match('/^[а-я]+$/','к').'<br>';
  14.     echo 'л '.preg_match('/^[а-я]+$/','л').'<br>';
  15.     echo 'м '.preg_match('/^[а-я]+$/','м').'<br>';
  16.     echo 'н '.preg_match('/^[а-я]+$/','н').'<br>';
  17.     echo 'о '.preg_match('/^[а-я]+$/','о').'<br>';
  18.     echo 'п '.preg_match('/^[а-я]+$/','п').'<br>';
  19.     echo 'р '.preg_match('/^[а-я]+$/','р').'<br>';
  20.     echo 'с '.preg_match('/^[а-я]+$/','с').'<br>';
  21.     echo 'т '.preg_match('/^[а-я]+$/','т').'<br>';
  22.     echo 'у '.preg_match('/^[а-я]+$/','у').'<br>';
  23.     echo 'ф '.preg_match('/^[а-я]+$/','ф').'<br>';
  24.     echo 'х '.preg_match('/^[а-я]+$/','х').'<br>';
  25.     echo 'ц '.preg_match('/^[а-я]+$/','ц').'<br>';
  26.     echo 'ч '.preg_match('/^[а-я]+$/','ч').'<br>';
  27.     echo 'ш '.preg_match('/^[а-я]+$/','ш').'<br>';
  28.     echo 'щ '.preg_match('/^[а-я]+$/','щ').'<br>';
  29.     echo 'ъ '.preg_match('/^[а-я]+$/','ъ').'<br>';
  30.     echo 'ы '.preg_match('/^[а-я]+$/','ы').'<br>';
  31.     echo 'ь '.preg_match('/^[а-я]+$/','ь').'<br>';
  32.     echo 'э '.preg_match('/^[а-я]+$/','э').'<br>';
  33.     echo 'ю '.preg_match('/^[а-я]+$/','ю').'<br>';
  34.     echo 'я '.preg_match('/^[а-я]+$/','я').'<br>';
  35.  

получаю ответ
Цитата:

а 1
б 1
в 1
г 1
д 1
е 1
ё 0
ж 1
з 1
и 1
й 1
к 1
л 1
м 1
н 1
о 1
п 1
р 0
с 0
т 0
у 0
ф 0
х 0
ц 0
ч 0
ш 0
щ 0
ъ 0
ы 0
ь 0
э 0
ю 0
я 1

Скажите пожалуйста, что не так?
Мне нужно всего лишь проверить, что слово состоит только из кириллических букв. Второй день уже убиваю
2. armancho7777777 - 02 Сентября, 2014 - 14:27:31 - перейти к сообщению
3. Мелкий - 02 Сентября, 2014 - 14:31:06 - перейти к сообщению
Добавьте модификатор u - юникод. По соображениям обратной совместимости, поддержка юникода включается отдельным модификатором.

Ну и ё в принципе не входит в а-я.
4. kostik34 - 02 Сентября, 2014 - 14:36:31 - перейти к сообщению
Спасибо огромное!!!

 

Powered by ExBB FM 1.0 RC1