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

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

  1. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    407
    `?!` такой оператор не поддерживается в CD, насколько я понимаю. Могу предложить такой вариант:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     

    Вложения:

    sinoda нравится это.
  2. WETALL

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

    Регистрация:
    14 фев 2019
    Сообщения:
    22
    Город:
    Москва
    Всем привет. Если кто то знает как подскажите пожалуйста... Мне нужно из кода
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    вытащить вот такую строку Расходные материалы и оснастка ::: Сверла ::: Сверла по металлу ::: Сверла по металлу ЗУБР и убрать последний элемент ::: Сверла по металлу ЗУБР, чтоб осталось только Расходные материалы и оснастка ::: Сверла ::: Сверла по металлу
     
  3. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Мало кода, немного больше на пару тегов с двух сторон больше приведите пример
     
  4. WETALL

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

    Регистрация:
    14 фев 2019
    Сообщения:
    22
    Город:
    Москва
    Так это и есть весь код по идее, вот еще немного добавил


    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     
  5. WETALL

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

    Регистрация:
    14 фев 2019
    Сообщения:
    22
    Город:
    Москва
    или взять от сюда
    <meta property="og:title" content="Каталог :: Аккумуляторный инструмент :: Аккумуляторные дрели шуруповерты :: Аккумуляторные дрели шуруповерты ЗУБР :: ЗУБР 20 В, бесщеточная, 2 АКБ (4Ач), в кейсе, дрель-шуруповерт DB-201-42 Профессионал" />
    Нужно только Аккумуляторный инструмент :: Аккумуляторные дрели шуруповерты
    С Каталог :: все понятно, а вот как убрать 2 последние не знаю эти - :): Аккумуляторные дрели шуруповерты ЗУБР :: ЗУБР 20 В, бесщеточная, 2 АКБ (4Ач), в кейсе, дрель-шуруповерт DB-201-42 Профессионал" />)
     
  6. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    407
    Попробуйте такой вариант:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     

    Вложения:

    WETALL нравится это.
  7. WETALL

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

    Регистрация:
    14 фев 2019
    Сообщения:
    22
    Город:
    Москва
    Класс, огромное спасибо, все получилось.
     
    xLime нравится это.
  8. dimochkaorg

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

    Регистрация:
    25 мар 2017
    Сообщения:
    204
    Регуляры, Регулярки и Регуляты ))) может кто подскажет как удалить регуляркой три символа с конца... вся граница это число unixtime типа 1693664362632 но она неправильная какая-то, так как не декодируется... а ежли убрать три последних символа, очень даже декодируется.

    UPD: В страданиях было придумано
    Код:
    re:(.{10,10})|
    - но он собака оставляет только последние три символа, которые мне как раз не нужны ))))

    UPD2: Да, я знаю, я придумал отвратительную вещь, но мне надо было срочно... )))

    Код:
    re:^([0-9]{10})|$1#
    #{skip}|
    
    И вообще огромное спасибо xLime и kagorec , на основе чьих правильных ответов по другим вопросам, я составил безграмотный, но работающий код.
     
    Последнее редактирование: 11 окт 2023
    kagorec и xLime нравится это.
  9. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Код:
    re:[\d]{3}$|
     
    Sauross, dimochkaorg и xLime нравится это.
  10. dimochkaorg

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

    Регистрация:
    25 мар 2017
    Сообщения:
    204
    Так просто! )))) Спасибо огромное.
     
    kagorec нравится это.
  11. InHouse

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

    Регистрация:
    22 апр 2024
    Сообщения:
    1
    Город:
    Москва
    Спасибо вам, добрый человек! Теперь стало куда понятнее)
     
  12. lisandr

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

    Регистрация:
    29 мар 2024
    Сообщения:
    3
    Всем привет. Такая задача.
    На сайте доноре есть куча объектов, которые надо спарсить, а также надо разделить на категории. Явного деления на доноре нет. Но есть упоминание подобия категорий в keywords.
    Итого беру границей парсинга содержимое мета-тега и получаю как итог строку вида:
    пример 1: Object1, Пилы, Object1 program, отзывы, Цепные пилы
    пример 2: Пилы, отзывы Object2, Цепные пилы, Object2, program

    Полученную строку обрабатываю при помощи DYNAMICVALUES что бы получить для удобства обработки столбцы по каждой типа категории.

    Собственно в чём сам вопрос?
    Как из полученных строк убрать лишний мусор? Лишний мусор это: Название объекта, programm, отзывы
    Пока только пробую использовать поиск-замену REPLACE
    1. Название объекта вырезаю указанием ранее спарсеного названия с этой же страницы.
    2. Но проблема возникает с отзывами и programm. Они у разных объектов имеют приписку названия (не всегда в той форме, что указано в самом названии).
    Пробовал строить структуры замены типа
    ,{skip} programm|
    или при помощи {get}
    но проблема в том, что замена идёт не от ближайшей запятой, а от первой попавшейся в строке, так как {skip} учитывает всё подряд.
    Т.е. нужно или как-то ограничивать проверку замены в рамках запятых или писать какое-то регулярное выражение? Вот с регулярками у меня туго, а проще реализовать или не пойму до конца как или нет такого функционала.
     
  13. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    407
    Здравствуйте.

    Если количество запятых постоянно, то у меня получилось составить вот такое правило:

    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    2024-05-25 19-44-58.jpg

    Если правила под ваши условия не подходят, приведите более подробные примеры.
     
  14. lisandr

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

    Регистрация:
    29 мар 2024
    Сообщения:
    3
    Подробнее пример:
    1. Название1, отзывы, Название1 сайт о рыбалке, воблеры, спиннинги, блёсна
    2. отзывы Название2, Название2, спиннинги, воблеры, сайт о рыбалке название2, блёсна
    3. Название3, воблеры, сайт о рыбалке, блёсна, спиннинги

    Вот три примера. Из них нужно удалить Названия (их я удаляю заменой <CD_GRAN_1!>|, где название парсится до этого в первой границе парсинга).
    Но нужно удалить ещё "сайт о рыбалке", и так как он иногда идёт с употреблением названия в начале и конце - возникает проблема, что саму фразу "сайт о рыбалке" удалить то могу, а вот название остается, в частности если оно в видоизмененном виде (скажем так название из двух слов например, но в списке может употребляться и слитно и с другим окончанием).

    В общем должно получиться следующее:
    1. воблеры, спиннинги, блёсна
    2. спиннинги, воблеры, блёсна
    3. воблеры, блёсна, спиннинги
    (убрать названия, убрать "сайт о рыбалке" с любыми допсловами в начале от запятой или после фразы до запятой, отзывы)
     
  15. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    407
    Пока мне не понятно есть ли тут повторяющийся паттерн.

    * "сайт о рыбалке" -- это статичная фраза?
    * "отзывы" -- так и написано или на месте этого слова какие-то другие фразы?

    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**

    2024-05-25 23-53-45.jpg
     
  16. lisandr

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

    Регистрация:
    29 мар 2024
    Сообщения:
    3

    "сайт о рыбалке" и "отзывы" - статичная фраза, но может употребляться как отдельно (запятая в начале и конце фразы), так и с упоминанием названия до или после фразы.
     
  17. dimochkaorg

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

    Регистрация:
    25 мар 2017
    Сообщения:
    204
    Народ как мне разбить текст на строки обязательно регуляркой , где разделителем является слово "html"
     
  18. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    407
    Нужен пример исходиного текста и результата, который хотим получить.
     
  19. dimochkaorg

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

    Регистрация:
    25 мар 2017
    Сообщения:
    204
    по слову "badges" или по "[] но с любым наполнением межу cкобками
     

    Вложения:

    • cd.txt
      Размер файла:
      46,1 КБ
      Просмотров:
      2
  20. xLime

    xLime Well-Known Member Супер Модератор Модератор

    Регистрация:
    4 сен 2017
    Сообщения:
    407
    Это лучше парсить через PHP скрипт (json_decode).

    В CD можно распарсить по блокам с помощью следующих правил:

    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Если нужно вытащить конкретное поле, то правила будут следующими:

    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
     
    dimochkaorg нравится это.

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