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

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

  1. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    файл подключите с сгенерированным диапазоном да и все
    через макрос FILE
     
    Root нравится это.
  2. inotoxic

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

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    REGEX - для обработки данных, генерировать числа он не умеет.
    Как вариант генерируете список с нужным диапазоном чисел с сохранением с файл.
    Через макрос <FILE_RANDOM> - берете строку.

    Или через <GETMORECONTENT> запрос к сайту Ссылки недоступны для гостей
    В панеле разработчика - вкладка network, можно посмотреть параметры POST запроса для генерации в нужном диапазоне
     
    faqbill, kagorec, Root и ещё 1-му нравится это.
  3. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Content Downloader X1 версии 11.1.0000510 (19.11.2018)

    - Добавлен макрос шаблона вывода [RANDOM] (вставка случайного числа из указанного диапазона);
    - Несколько доработок.
     
    Trim, faqbill, xLime и ещё 1-му нравится это.
  4. Trim

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

    Регистрация:
    3 фев 2014
    Сообщения:
    34
    Скажите, а почему не срабатывает выражение?
    Код:
    re:(?<=<a\ href=")(.*?)(?=")|$1
    Нужно выдернуть ссылку из спарсенного текста
    Код:
    <a href="https://cloud.mail.ru/public/855GjN/6M4r8zpJf" target="_blank" class="link link--external" rel="nofollow noopener">https://cloud.mail.ru/public/855GjN/6M4r8zpJf</a>
    Или я не правильно делаю?
     
  5. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    <a href="{get}"|{get}
     
  6. inotoxic

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

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    Можно просто через
    <{skip}>|
    удалит все теги и оставит только текст между тегами
     
    Root нравится это.
  7. Trim

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

    Регистрация:
    3 фев 2014
    Сообщения:
    34
    А можно поправочку... У меня на входе получается к примеру такой текст
    Код:
    <a href="ссылка" target="_blank" rel="noopener">ссылка</a>
    текст
    
    еще текст
    
    Мне нужно привести через регулярку к вот такому виду
    Код:
    Ссылки недоступны для гостей
    текст
    еще текст
    Если использую конструкцию
    Код:
    <a href="{get}"|[урл='{get}']{get}[/урл]
    то весь окружающий текст улетает
     
  8. inotoxic

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

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    <{skip}>|
    re:\n\r|
     
    Trim нравится это.
  9. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Пробуйте такой вариант:
    Код:
    re:<a[^<>]+href="([^<>"]+)"[^<>]+>[^<>]+</a>|[урл='$1']$1[/урл]
    [​IMG]

    п.с. Регулярки в C.D. работают упрощенные и этого всегда хватало.
     
    Trim нравится это.
  10. Trim

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

    Регистрация:
    3 фев 2014
    Сообщения:
    34
    Спасибо, все работает...
     
  11. Trim

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

    Регистрация:
    3 фев 2014
    Сообщения:
    34
    Скажите, а можно как то удалять текст вместе с строками? К примеру нахожу нужный мне текст с помощью регулярки и заменяю на пустоту, так вот когда исчезает текст, на этом месте остается много пустых строк и текст выглядит кусками(( Спасибо))
     
  12. inotoxic

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

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    Код:
    re:\r\n|
    удалит пустые строки
    Код:
    re:\t{2,}
    удалит два и более знаков табуляции
    Код:
    re:\s{2,}|
    удалит два и более пробела
    Код:
    re:([\t\s]{2,})| 
    замена табов и пробелов боле двух, на одиночный пробел

    Здесь есть много примеров
     
    Trim и kagorec нравится это.
  13. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Фразы используйте свои и не забывайте об экранировании символов в фразах
    Код:
    re:[^\r\n]*фывапролдывапролдявапро[^\r\n]*|
    re:[^\r\n]*популяризации[^\r\n]*|
    re:[^\r\n]*это текст\-"рыба"[^\r\n]*|
    re:^[\r\n]+|
    re:[\r\n]+|{br}
    [​IMG]
     
    xLime, Trim и inotoxic нравится это.
  14. Trim

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

    Регистрация:
    3 фев 2014
    Сообщения:
    34
    Доброго времени суток!

    Помогите решить проблему, есть кусок кода
    Код:
    <a href="/threads/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80-%D0%9C%D0%B0%D0%BA%D0%B0%D1%80%D0%BE%D0%B2-%D0%92%D0%B0%D1%88-%D0%BB%D1%83%D1%87%D1%88%D0%B8%D0%B9-%D0%BA%D1%83%D1%80%D1%81-%D0%BF%D0%BE-excel.34124/" class="u-concealed"><time  class="u-dt" dir="auto" datetime="2018-07-13T19:22:06+0300" data-time="1531498926" data-date-string="13 Июл 2018" data-time-string="19:22" title="13 Июл 2018 в 19:22">13 Июл 2018</time></a>
    
    забираю из куска дату, границами парсинга, получается:
    Код:
    13 Июл 2018
    Мне нужно, раскидать эту дату на день, месяц, год. Помогите, как лучше сделать, регуляркой или как то еще, не могу понять..?. Заранее благодарен за помощь
     
  15. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Код:
    data-date-string="{get}"|{get}
     
    Trim нравится это.
  16. Trim

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

    Регистрация:
    3 фев 2014
    Сообщения:
    34
    Может неправильно выразился... Мне нужно чтобы в каждую отдельную ячейку таблицы записался - день, месяц, год
     
  17. inotoxic

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

    Регистрация:
    13 сен 2015
    Сообщения:
    867
    Код:
    data-date-string="{get}"|{get}
    re:\s|[CSVCS]
    [​IMG]
     
    kagorec и Trim нравится это.
  18. art2000

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

    Регистрация:
    4 окт 2018
    Сообщения:
    4
    Город:
    Томск
    Здравствуйте, подскажите пожалуйста регулярное выражение
    Мне нужно сделать заглавными первую букву в англ словах
    например: "acer" нужно чтобы стало "Acer" , asus - Asus
     
  19. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    На форуме уже пару раз был подобный вопрос, пользуйтесь поиском. Если слово одно и всегда идет первое то поможет макрос REGUPFIRST
     
  20. Root

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

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Замените файл Content Downloader.exe (в папке с программой) этим файлом:
    Скрытое содержимое:
    **Скрытое содержимое: доступно при наличии 1 постов.**
    Код:
    [REGUPFIRST][WORDMODE][ENGONLY]арбуз asus toyota яблоко[/REGUPFIRST]
     
    kagorec нравится это.

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