Задать вопрос
@maiskiykot
Free coder

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

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

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

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽