Здравствуйте, помогите, пожалуйста, удалить в таком фрагменте слово "собака" с помощью регулярок. Текст между тегами всегда разный, удалить нужно все упоминания слова "собака" Код (Text): <tag>корова собака бык собака петух конь собака</tag> чтобы результат выглядел так: Код (Text): tag>корова бык петух конь </tag> Пробую так, но работает только если в тексте встречается искомое слово "собака", если искомого нет - возвращает ошибку почему-то... Также мой вариант удаляет только первое упоминание искомого слова, а нужно чтобы удалял все... Код (Text): preg_replace('|(<tag>)(.*)(собака)(.*)(</tag>)|isU', "$1"."$2"."$4"."$5", $doc) Что в моем варианте не работает? Был бы очень признателен за помощь!
Нашел ошибку, лишний модификатор убрал, теперь ищет и удаляет первое появление искомого... Код (Text): $text = preg_replace('|(<tag>.*)(собака)(.*</tag>)|iU', "$1"."$3", $text); Теперь, вопрос, как сделать, чтобы удалял все появления слова "собака"?
Ну, например, так: PHP: $text = preg_replace('~(<tag>|\G(?!\A))[^<]*?\Kсобака~', '', $tex); https://regex101.com/r/4VRDYg/1/