Регулярка на PHP - как обернуть слово в тег?

Тема в разделе "Регулярные выражения", создана пользователем d0ublezer0, 15 май 2019.

  1. d0ublezer0

    d0ublezer0

    Регистр.:
    21 май 2009
    Сообщения:
    290
    Симпатии:
    163
    Привет.
    в переменную PHP приходит вот такой код:
    HTML:
    <label for="shipment_id_1"><span class="vmshipment"><span class="vmshipment_name">Нижний Новгород, пр Бусыгина, 2а</span><span class="vmshipment_description">Понедельник-пятница 9:00-17:30
    Без обеда</span></span></label>
    <label for="shipment_id_2"><span class="vmshipment"><span class="vmshipment_name">Транспортная компания</span><span class="vmshipment_description">Стоимость доставки согласовывается с менеджером дополнительно</span></span></label>
    <label for="shipment_id_3"><span class="vmshipment"><span class="vmshipment_name">Москва, Московская область, Подольский район</span><span class="vmshipment_description">Адрес склада:  вблизи д. Б.Толбино, СУ-14</span></span></label>
    <label for="shipment_id_4"><span class="vmshipment"><span class="vmshipment_name">Санкт-Петербург, тут адрес</span><span class="vmshipment_description">Адрес склада: Санкт-Петербург, пос. Металлострой, д. 5, лит. ГЗ</span></span></label>
    Задача обернуть все названия городов в тег <strong>
    А именно, значения между "vmshipment_name"> и следующей запятой

    Т. е. должно получиться вот так:
    HTML:
    
    <label for="shipment_id_1"><span class="vmshipment"><span class="vmshipment_name"><strong>Нижний Новгород</strong>, пр Бусыгина, 2а</span><span class="vmshipment_description">Понедельник-пятница 9:00-17:30
    Без обеда</span></span></label>
    <label for="shipment_id_2"><span class="vmshipment"><span class="vmshipment_name">Транспортная компания</span><span class="vmshipment_description">Стоимость доставки согласовывается с менеджером дополнительно</span></span></label>
    <label for="shipment_id_3"><span class="vmshipment"><span class="vmshipment_name"><strong>Москва</strong>, Московская область, Подольский район</span><span class="vmshipment_description">Адрес склада:  вблизи д. Б.Толбино, СУ-14</span></span></label>
    <label for="shipment_id_4"><span class="vmshipment"><span class="vmshipment_name"><strong>Санкт-Петербург</strong>, тут адрес</span><span class="vmshipment_description">Адрес склада: Санкт-Петербург, пос. Металлострой, д. 5, лит. ГЗ</span></span></label>
    
    Пробовал собрать в онлайн-конструкторах, ничего не вышло - в регулярных выражениях не силён. Помогите плз решить задачу
     
    Последнее редактирование: 15 май 2019
  2. Q_BASIC

    Q_BASIC

    Регистр.:
    30 ноя 2013
    Сообщения:
    474
    Симпатии:
    1.183
    PHP:
    preg_replace('#("vmshipment_name">)([^\,\>\<]+?),#''$1<strong>$2</strong>,'$text);
     
    d0ublezer0 нравится это.