Regexp - шпаргалка по регулярным выражениям

Тема в разделе "Решение различных задач по парсингу", создана пользователем kagorec, 19 мар 2012.

  1. Mind

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

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    Доброго дня! Просьба подсказать регулярку по такому случаю

    Имеем в тексте ссылки типа <a href="/audit/bankovskij-audit/"> (ссылка может иметь любую вложенность <a href="/audit/1/bankovskij-audit/">, <a href="/audit/sfsdfsd/werwe/bankovskij-audit/"> и т.д.)
    Необходимо получить на выходе ссылку <a href="/bankovskij-audit/">, т.е. брать всегда последнюю вложенность ссылки

    Спасибо!
     
  2. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Код:
    re:href="/[^<>"]*/([^<>"\/]*)/"|href="/$1/"
     
    Root и Mind нравится это.
  3. Daseraf

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

    Регистрация:
    7 дек 2015
    Сообщения:
    2
    Ребят, подскажите пожалуйста:
    Нужно заменить пробел на нижнее подчёркивание и понизить регистр в dynamic values макросе.
    А именно:
    [NEXTPAIR]Prisma Type[VALUE]:
    Должно стать:
    [NEXTPAIR]prisma_type[VALUE]:
    При этом:
    [VALUE]:sometext Valule[NEXTPAIR]
    Должно остаться как есть
     
  4. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Здравствуйте.

    2019-06-02_20-38-09.png

    2019-06-02_20-39-41.png
     
    kagorec, xLime и Daseraf нравится это.
  5. rusalex

    rusalex Active Member Пользователи

    Регистрация:
    22 мар 2018
    Сообщения:
    133
    Город:
    Kiev
    Здравствуйте.
    Подскажите, можно с помощью регулярных выражений вырезать нужную часть в предложении? Например, из такого предложения
    Made of 73% cotton/26% polyester/1% spandex denim in our Indigo wash - сделать так 73% cotton/26% polyester/1% spandex
    ПО поводу Made of | - понятно, но вот как обрезать лишние слова поле "цифры+%+слово" в конце предложения???
    Короче нужно оставить состав: 73% cotton/26% polyester/1% spandex

    Помогите если возможно! Или подскажите через какой макрос это сделать? Спасибо.
     
  6. Mind

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

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    Не претендую на оригинальность, скорее всего на "костыль", знаю что можно оригинальнее проблему решить, но если невтерпеж, то вот
    Ссылки недоступны для гостей
     
    rusalex нравится это.
  7. rusalex

    rusalex Active Member Пользователи

    Регистрация:
    22 мар 2018
    Сообщения:
    133
    Город:
    Kiev
    Спасибо, попробую... код конечно супер!!!

    Вы сами писали или откуда-то взят?
     
    Root нравится это.
  8. Mind

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

    Регистрация:
    8 ноя 2016
    Сообщения:
    190
    почему взят, сам. Поэтому "костыль")
     
    Root нравится это.
  9. rusalex

    rusalex Active Member Пользователи

    Регистрация:
    22 мар 2018
    Сообщения:
    133
    Город:
    Kiev
    Спасибо за код но он не подошел, так как не срабатывал.
    Вот придумал такой вроде характеристики хорошо обрезает из описания... (может кому-то понадобится)

    made of - нередко в середине становится
    А состав бывает из 3-2 и 1 материала

    Код:
    {skip}made of |
    re:(^\d+%\s\w+\/\d+%\s\w+\/\d+%\s\w+)|<ytr>$1</ytr>
    re:(^\d+%\s\w+\/\d+%\s\w+\)|<ytr>$1</ytr>
    re:(^\d+%\s\w+)|<ytr>$1</ytr>
    <ytr>{get}</ytr>|{get}
     
    Последнее редактирование: 26 июл 2019
  10. rusalex

    rusalex Active Member Пользователи

    Регистрация:
    22 мар 2018
    Сообщения:
    133
    Город:
    Kiev
    Но лучше брать лишне и так сработает

    Код:
    re:(\d+%\s\w+\/\d+%\s\w+\/\d+%\s\w+)|<ytr>$1</ytr>
    re:(\d+%\s\w+\/\d+%\s\w+\)|<ytr>$1</ytr>
    re:(\d+%\s\w+)|<ytr>$1</ytr>
    <ytr>{get}</ytr>|{get}
     
  11. strelkovandrey

    strelkovandrey Member Пользователи

    Регистрация:
    17 дек 2016
    Сообщения:
    28
    Подскажите пожалуйста, как нужно настроить фильтр ссылок, чтобы добавлялись только ссылки которые заканчиваются на (в сканере сайтов)
    -XXXXXX

    где X это либо буква, либо цифра, т.е. тире вначала обязетельно есть, а после неё обязательно ещё 6 символов среди которых могут быть как буквы, так и цифры
     
  12. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Код:
    re:\-[\dA-Za-z]{6,}$
     
  13. vladimir4000

    vladimir4000 Member Пользователи

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Господа, подскажите пожалуйста регулярное выражение для того, что бы вырезать все лишнее и оставить только цвет? Нюанс в том, что иногда есть запятая, иногда ее нет, вот пару примеров:
    Женский комплект арт. 828-5, серо-синий
    Халат арт. 346-16, розово-красный
    Халат арт. 346-20 бело-синий
    Джемпер арт. 346-22 синий
     
  14. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
     {get}|{get}
    Перед первым {get} пробел
     
    vladimir4000 нравится это.
  15. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    На странице этот участок кода так и есть в виде чистого текста или с некоторыми тегами?
     
    vladimir4000 нравится это.
  16. vladimir4000

    vladimir4000 Member Пользователи

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    В коде этот участок выглядет так <title>Женский комплект арт. 828-5, серо-синий</title> , но <title> обрезаются, т.к. они границы парсинга.
     
  17. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Мой способ должен решить вопрос.
     
    vladimir4000 нравится это.
  18. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Код:
    re:^.*?([a-zа-я\-]{4,})$|$1
     
    vladimir4000 нравится это.
  19. vladimir4000

    vladimir4000 Member Пользователи

    Регистрация:
    25 авг 2017
    Сообщения:
    119
    Огромное спасибо, оба варианта рабочие. Почитал подсказки к get в Поиск и замена, но все равно не понятно, почему сработало :)
     
    kagorec нравится это.
  20. Stan

    Stan Active Member Пользователи

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    как взять две первые буквы?
     

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