@kamtm

Как написать регулярное выражение удаления a href?

Добрый день,
имеется список
<ul>
<li class="active"><a href="">Раздел</a></li>
<li><a href="">Раздел2</a></li>
</ul>

Нужно получить следующий вид
<ul>
<li class="active">Раздел</li>
<li><a href="">Раздел2</a></li>
</ul>

То есть убрать ссылку у li с классом active

Нашел в сети решение, которое удаляет ссылку с определенным класом:
$pattern = '~(<a href="[^"]*" class="delete">)([^<]*)(</a>)~';
$result = preg_replace($pattern, '$2', $subject);

Но, как ее доделать под мою задачу?
Спасибо
  • Вопрос задан
  • 366 просмотров
Решения вопроса 1
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
$pattern = '~<li class="active">(<a href="[^"]*">)([^<]*)(</a>)~';

Что-то вроде этого.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@romteh
не проверял... но может как то так:
$pattern = "/class=\"active\">\s?<a href=\".*?\">(.*?)<\/a>/g";
$replacement= "class=\"active\">$1";
$result = preg_replace($pattern, $replacement, $subject);
Ответ написан
Комментировать
Вообще лучше бы ее просто не выводить.
А так - видимо надо добавить еще в начало паттерна чтобы учитывало.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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