Оставить в результатах только "последнее слово"

Тема в разделе "Границы парсинга", создана пользователем CSVCS, 24 июл 2019.

  1. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Здравствуйте.
    Столкнулся с ситуацией когда на сайте доноре Артикул товара помещен в h1 вместе с Наименованием.
    Например
    <h1>Товар для чего-нибудь AD144-118</h1>.
    Есть и другие вхождения, но везде идет Название товара вместе с Артикулом. Единственное что их объясняет - это то, что артикул идет вседа в конце.
    Подскажите, пожалуйста, есть ли какая то возможность, задав две границы <h1>...</h1>, прописать что-то в доп.настройках, чтобы получить в результатах в одной ячейке "Товар для чего-нибудь", а в другой "AD144-118" ?
    Т.е. в первом случае из результатов убрать "последнее слово" (отделено пробелом от названия, состоит из букв и цифр, и в нем может присутствует знак "-"). А во втором случае оставить только "последнее слово".
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Через регулярные выражения, ставится метка и потом из метки вылавливаем через get
    Код:
    re: ([^\s\t\]{3,12})$|@#$1#@
    @#{get}#@|{get}
    п.с. сработает правильно когда в артикулах нет пробелов
     
    CSVCS нравится это.
  3. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Это в поле Поиск/Замена доп.настройки границы парсинга надо вставить?
     
  4. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Да точно как описали, примените поиск-замена для отдельной границы
     
  5. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Приведенный вами код - это какое-то произвольное рег.выражение для примера?
    Мне надо получить 2 результата:
    1. Наименование без артикула.
    2. Артикул.

    Нашел более подробно в Системе Помощи. Оставлю здесь ссылку, может кому пригодится.
    Ссылки недоступны для гостей

    п.с. осталось только теперь с этими регулярными выражениями разобраться, там у меня не особо похожие варианты в каждом товаре, поэтому и надеялся, что можно как-то только "последнее слово" удалить/оставить.
     
  6. Mind

    Mind Well-Known Member Пользователи

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    Можно без регулярок
    Так можно просто вырезать слово с конца (до пробела)
    Ссылки недоступны для гостей
    Так артикул
    Ссылки недоступны для гостей
     
    Root и CSVCS нравится это.
  7. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Вы мой избавитель)
    Сегодня впервые узнал про эти регулярные выражения, хотя CD пользуюсь уже давно, хоть и не часто.
    Обложился Википедиями со всех сторон, пытаюсь разобраться в этих рег.выражениях - полный мрак.
    Приведенный выше код вообще ни о чем мне не говорит, несмотря на попытки расшифровать его, используя справочники.
    Я уже мысленно простился с выходными для изучение этой дрототени, а тут ВЫ!
    Спасибо большое, добрый человек.
    Буду за компом проверю ваш метод и обязательно отпишусь.

    п.с. посмотрел в системе помощи описание операторов, и если с первой формулой все более-менее понятно
    пробел{skip}|[REV] - включает реверсивный режим поиска-замены, т.е. ищет с конца и удаляет все от пробела и до начала.

    то эффективность второй вызывает сомнение
    {skip}|{prevskip} - вроде как должно заменить ВСЁ на ВСЕ ЧИСЛОВЫЕ ЗНАЧЕНИЯ.

    Но проблема в том, что у некоторых товаров в Названии присутствуют ЦИФРЫ, а в Артикулах БУКВЫ.
     
  8. Mind

    Mind Well-Known Member Пользователи

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    пробел{skip}| - удаляет все от последнего пробела
    {skip}|{prevskip} - вывод удаленного фрагмента из строки выше
     
  9. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    да, что-то не то я прочитал и как-то не так понял)

    у вас на 2-м скрине:
    пробел{skip}|
    {skip}|{prevskip}

    т.е. первая строка - найти пробел и все, что после него и удалить.

    Но название товара состоит из нескольких слов с пробелами. Такая операция удалит, а потом соответственно выведет обрезанное на первое слово Название товара с артикулом. Или я опять что-то не понял?
     
  10. Mind

    Mind Well-Known Member Пользователи

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    я же написал, начнет удалять с ПОСЛЕДНЕГО пробела. Вы же сами написали, что артикул в конце
     
  11. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    Может быть на втором примере первая строка должна быть такой же как и в первом? т.е. пробел{skip}|[REV]
     
  12. Mind

    Mind Well-Known Member Пользователи

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    может Вы перестанете гадать, а просто попробуете этот вариант?
     
    kagorec нравится это.
  13. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    да конечно, спасибо, так и сделаю) просто сейчас нет возможности проверить. как до компа доберусь то сразу.
    Спасибо еще раз за помощь.
     
  14. CSVCS

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

    Регистрация:
    28 дек 2016
    Сообщения:
    42
    @Mind, СПАСИБО. Работает.
     

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