Эта тема на forum.dklab.ru


Ev: Вопрос по рег.выражению..
Привет. Может эта тема годится для мусорки,но я не нашел в поиске ответа. Потому спрашиваю. Почему выражение preg_match('#[а-я]#',$str) и preg_match('#[^а-я]+#',$str) при малых русских буквах с,ы в $str выдают true(1)? Это из-за кодировки,чтоли? Но почему только некоторые русские буквы такое провоцируют? Случайно столкнулся и не понимаю этого,подскажите пожалуйста.
Anonymous:
Извиняюсь, preg_match('#[а-я]#',$str) и preg_match('#[^а-я]#',$str) . (во втором вызове плюса не надо)
Ev:
Один из способов решения,о котором я только что узнал,это использовать модификатор u . Наверно его и буду использовать для проверок кирилицы. Но все же хотелось бы узнать,почему только некоторые буквы и именно в нижнем ркгистре(в верхнем работает норм). Ерунда какаят.
aivanov:
Есть один момент. Буква ё идет в таблице уникода после я, то есть [^а-яё] или [^а-ё]
А по сабжу ничего не скажу.
bæv:
почему только некоторые буквы
— локаль неправильная.

setlocale()

Эта тема на forum.dklab.ru