@maiskiykot
Free coder

Не срабатывает preg_match_all?

Или я отстал или что, но не могу запустить поиск с отображением числа вхождений - т.е. есть текст и в нем русские слова (к примеру - выбор). Так вот, первое вхождение находит элементарно, а больше ни в какую. Применял следующий скрипт:

$cnt = preg_match_all('#.*'.$value.'.*#is',$contents,$matches);
echo $cnt

Выводит 1, хотя очевидно наличие более 2-х вхождений слов. Кстати $value у меня образуется следующим способом - $value = 'выбор?.*'. Что не так? Кодировку менял с UTF-8 на Win-1251 - разницы нет.
  • Вопрос задан
  • 229 просмотров
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
'#.*'.$value.'.*#is'

Кстати $value у меня образуется следующим способом - $value = 'выбор?.*'.

А почему должно найтись что-то ещё? Вы захватили всё от начала и до конца строки.
Это-то единственное совпадение регулярка уступила и то не по своей воле, а ради хоть одного совпадения всего выражения.
Ответ написан
@maiskiykot Автор вопроса
Free coder
Нашел ответ неожиданно просто - выключил жадность с ключом U
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы