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 - будет здОрово)
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
@FabiBoom
$str = "html";
$pattern = "/((<li>(.*?)<\/li>\s*)+)/s";

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

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

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