Задать вопрос
@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);

Но, как ее доделать под мою задачу?
Спасибо
  • Вопрос задан
  • 373 просмотра
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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);
Ответ написан
Комментировать
Вообще лучше бы ее просто не выводить.
А так - видимо надо добавить еще в начало паттерна чтобы учитывало.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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