Php, preg_match

01.01.2001

Php, preg_match
Здрасте! Нужна подсказка.
В фразе "каждый охотник желает знать, где сидит фазан" хочу найти и вывести на экран слово "каждый"
Если я пишу фразу с маленькой буквы, то регулярка /[а-я] {6}/ дает результат.
Если я пишу фразу с большой буквы, а к регулярке добавляю модификатор \i - /[а-я] {6}\i/, то результата небудет

Почему?

  • Неправильно ты, Евгений, модификатор добавляешь. Вот как надо:
    /[а-я] {6}/i
    http://www.php.net/manual/ru/reference.pcre.pattern.modifiers.php

  • Капитан Гугл правильно говорит, но модификаторы нормально работают похоже только с английским текстом.
    попробуй написать:
    /any|каждый/i
    а текст:
    Каждый КаЖдЫй каждый КАЖДЫЙ
    Any AnY any ANY

    результат:

    Всего совпадений 5

    1 : каждый
    2 : Any
    3 : AnY
    4 : any
    5 : ANY

    чудеса какие то

    Нашел решение. используй вместо [а-я] и прочего \d \w \s и т. д. - эквиваленты в юникоде
    эквивалентом [a-я] может быть \pL
    то есть при регулярке:
    /[\pL]{6}/i

    мы получим результат:

    Всего совпадений 4

    1 : Каждый
    2 : КаЖдЫй
    3 : каждый
    4 : КАЖДЫЙ

Вас заинтересует