Задать вопрос
@Farrien
Tell me who

Как написать исключение?

Есть такой рейплейс

$text = preg_replace("|[\r\n]+|", "\n", $text);
$text = preg_replace("|[\n]+|", "</p>\n<p>", $text);


Убирает (вроде правильно) лишние переносы строк и заключает все в параграфы.

Сейчас понадобилось чтоб он игнорировал html-теги в начале и в конце паттерна. Типа (div|ul|li) и так далее. Долго пробовал сам, но не получилось. Исключения писать как не понял.
Точнее если в тексте есть такое
"уменьшает силу размаха.</div>\r\n<div>Также уменьшает..."
, то теги параграфа не появлялись, в общем игнорировались.
  • Вопрос задан
  • 50 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
Albert Kazan
spoiler
$text = "уменьшает силу\rразмаха.</div>\r\n</div>Также уменьшает...\r\nИ ещё текст";

$patt = "~(?<!</div>|</ul>|</li>)[\r\n]+(?!</?(?:div|ul|li)>)~";
$text = preg_replace($patt, "</p>\n<p>", $text);

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

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

Похожие вопросы