За последние 24 часа нас посетили 16926 программистов и 1292 робота. Сейчас ищут 1429 программистов ...

preg_replace проблема( в новичках никто не помог)

Тема в разделе "Сделайте за меня", создана пользователем Dobby, 28 сен 2017.

  1. Dobby

    Dobby Новичок

    С нами с:
    28 сен 2017
    Сообщения:
    11
    Симпатии:
    0
    Здравствуйте, помогите, пожалуйста, удалить в таком фрагменте слово "собака" с помощью регулярок.

    Текст между тегами всегда разный, удалить нужно все упоминания слова "собака"


    Код (Text):
    1. <tag>корова собака бык собака петух конь собака</tag>
    чтобы результат выглядел так:

    Код (Text):
    1. tag>корова  бык  петух конь </tag>
    Пробую так, но работает только если в тексте встречается искомое слово "собака", если искомого нет - возвращает ошибку почему-то... Также мой вариант удаляет только первое упоминание искомого слова, а нужно чтобы удалял все...

    Код (Text):
    1. preg_replace('|(<tag>)(.*)(собака)(.*)(</tag>)|isU', "$1"."$2"."$4"."$5", $doc)
    Что в моем варианте не работает? Был бы очень признателен за помощь!
     
  2. Dobby

    Dobby Новичок

    С нами с:
    28 сен 2017
    Сообщения:
    11
    Симпатии:
    0
    Нашел ошибку, лишний модификатор убрал, теперь ищет и удаляет первое появление искомого...

    Код (Text):
    1. $text = preg_replace('|(<tag>.*)(собака)(.*</tag>)|iU', "$1"."$3", $text);

    Теперь, вопрос, как сделать, чтобы удалял все появления слова "собака"?
     
  3. Emilien

    Emilien Активный пользователь

    С нами с:
    30 июн 2016
    Сообщения:
    246
    Симпатии:
    156
    Dobby нравится это.
  4. Dobby

    Dobby Новичок

    С нами с:
    28 сен 2017
    Сообщения:
    11
    Симпатии:
    0
    Большое спасибо, очень красиво. Сейчас, попытаюсь разобраться что есть что тут. :)