Задать вопрос
theblackpost
@theblackpost

Как составить регуляку по html-спискам?

Есть некий html-код, где теги вместо <p> могут быть другими. например:

<p>Some text</p>
<li>first list element</li>
<li>second list</li>
<p>Some text 2</p>
<p>Some text 3</p>
<li>first list element 2</li>
<li>second list element 2</li>
<h2>header 2</h2>


Помогите составить регулярку для preg_match (PHP), чтобы выбрать весь текст от первого <li> до последнего </li>в списке и обернуть в <ul> </ul>
То есть по сути, чтобы html-код на выходе принял вид:

<p>Some text</p>
<ul>
<li>first list element</li>
<li>second list</li>
</ul>
<p>Some text 2</p>
<p>Some text 3</p>
<ul>
<li>first list element 2</li>
<li>second list element 2</li>
</ul>
<h2>header 2</h2>


Если это проще сделать не через RegEx - будет здОрово)
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@FabiBoom
$str = "html";
$pattern = "/((<li>(.*?)<\/li>\s*)+)/s";

echo preg_replace($pattern, "<ul>$0</ul>", $str);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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