Поиск и замена для плавающей хар-ки

Тема в разделе "Макросы шаблона вывода", создана пользователем Verdano, 1 дек 2014.

  1. Verdano

    Verdano New Member Пользователи

    Регистрация:
    16 июн 2013
    Сообщения:
    18
    Подскажите как при помощи поиск и замены вытаскивать только одну строчку из характеристик товар, при том что эта характеристика может присутствовать на странице товара , а может и отсутствовать, так же она может быть, то в начале списка характеристик, то в середине, то в конце.
    Например нужен размер.

    товар1
    Производитель китай
    Размер m-xxxl
    Цвет синий
    Материал нейлон

    товар2
    Материал нейлон
    Цвет синий
    Производитель китай
    Размер m-xxxl

    товар3
    Размер m-xxxl
    Цвет синий
    Материал нейлон
    Производитель китай
     
  2. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Здравствуйте, например регулярным выражением.
    но тут нужно учесть, какие вариации бывают у размера. m-xxxl либо как идут данные., например после него идет. например <br>, либо они всегда идут так как написано у вас.
    тогда так:
    Код:
    re:^(Размер .*?)$
     
  3. Verdano

    Verdano New Member Пользователи

    Регистрация:
    16 июн 2013
    Сообщения:
    18
    Что было нагляднее вот пример кода.

    <h2 class="ui-box-title">Характеристики товара</h2>
    <div class="ui-box-body">
    <dl class="ui-attr-list util-clearfix">
    <dt>Тип Уличной Одежды:</dt>
    <dd title="Куртки">Куртки</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Вид спорта:</dt>
    <dd title="Мотоцикл и атогонки">Мотоцикл и атогонки</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>индивидуального изготовления:</dt>
    <dd title="Да">Да</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Особенности:</dt>
    <dd title="Антистатик,Не садиться,Не сморщивается,Воздухопроницаемый,Быстрая сушка,Ветрозащитный">Антистатик,Не садиться,Не сморщивается,Воздухопроницаемый,Быстрая сушка,Ветрозащитный</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Тип:</dt>
    <dd title="Люди">Люди</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Материал:</dt>
    <dd title="Полиэстер,Нейлон">Полиэстер,Нейлон</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Тип ткани:</dt>
    <dd title="Оксфорд">Оксфорд</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Воротник:</dt>
    <dd title="Отложной воротник">Отложной воротник</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Номер Модели:</dt>
    <dd title="JK08">JK08</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>SIZE:</dt>
    <dd title="M-L-XL-XXL">M-L-XL-XXL</dd>

    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Material:</dt>
    <dd title="100% Polyester">100% Polyester</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt><span class="brand">Brand Name:</span></dt>
    <dd title="Ridding tribe">Ridding tribe</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Color:</dt>
    <dd title="Black">Black</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Protective Gear:</dt>
    <dd title="Matched 5pcs/set Protective Pads">Matched 5pcs/set Protective Pads</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Age Group :</dt>
    <dd title="Adult">Adult</dd>
    </dl>
    <dl class="ui-attr-list util-clearfix">
    <dt>Gender :</dt>
    <dd title="Unisex">Unisex</dd>
    </dl>
    </div>
    </div>

    Я использовал простую конструкцию {skip}SIZE|Размер в итоге получил размер и его значение + все параметры что идут после размера. Если вам не трудно покажите выражение что бы можно было выдерать из характеристик размер. Эта часть кода с алиэкспресс, а на этом сайте нет строго выстроенных данных, они как хотят так их и пихают на страницу товара.
     
  4. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Код:
    {br}|
    re:^(.*?\<dt\>SIZE:\<\/dt\>)(.*?)\<\/dd\>(.*?)$|Размер: $2
    re:<(.*?)>|
    Вставьте в поиск/замену
    снимите галочку XTMTOTXT и в 1 строку
     
  5. Verdano

    Verdano New Member Пользователи

    Регистрация:
    16 июн 2013
    Сообщения:
    18
    Сложное регулярное выражение.
    Большое спасибо.
     

Поделиться этой страницей