@User782

Как удалить строку содержащие определенное слово?

Есть такие данные:
<p>one</p>
<p>two</p>
<p>three</p>

Нужно вывести только
<p>белый</p>
<p>зеленый</p>

Пытаюсь так, но убирает всё
$text = preg_replace('#(<p>(.*?)three(.*?)</p>)#is', '', $text);
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
@dodo512
Модификатор s (PCRE_DOTALL) не нужен.
$text = '
<p>one</p>
<p>two</p>
<p>three</p>
';

$text = preg_replace('#<p>.*?three.*?</p>#i', '', $text);

echo $text;


Если весь текст в одну строку, то так:
$text = '
<p>one</p> <p>two</p> <p>three</p>
';

$text = preg_replace('#<p>(?:(?!</p>).)*?three.*?</p>#i', '', $text);

echo $text;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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