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

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

  1. Root

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

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

    {skip},|
     
  2. Root

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

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

    Это выдержка из кода WEB-документа? Нужно видеть весь код. Данные, которые вы предоставили могут вызвать только угадывание решения.
     
  3. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    нужно регулярное выражение - забираем все что меньше /4600000/
     
  4. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    такой не существует. Так что лучше просто все собрать и фильтрануть в екселе
     
  5. Stan

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

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

    re:((19|20)\d\d)|$1
    так не работает

    чтобы отлавливал года 1991 2004 и тд
     
  6. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Stan а что есть на входе?
    Но вообще все гениально и просто )
    (1991|1992|2004)
    или так (199[1-9]|200[1-9])
     
  7. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    похоже ему надо значения от 1900-1999 и 2000-2099
    тогда так
    Код:
    re:19([0-9]{2})|19$1
    re:20([0-9]{2})|20$1
     
    Stan нравится это.
  8. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    есть строка - "Название ляляля 2007" и нужно взять только годы , а годы это 19-- и 20--
    а остальное удалить
     
    Последнее редактирование: 19 мар 2017
  9. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Код:
    re:19([0-9]{2})|-==19$1==-
    re:20([0-9]{2})|-==20$1==-
    -=={get}==-|{get}
     
    Stan нравится это.
  10. seodamage

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

    Регистрация:
    5 фев 2014
    Сообщения:
    31
    Здравствуйте.

    Есть список ссылок около 80к. Разные сайты и домены. Мне нужно спарсить прокси при помощи регулярного выражения. Не пойму как сделать лучше.

    Код:
    Само выражение:
    
    \d*\.\d*\.\d*\.\d*\:\d+
     
    Не понял как его использовать при задании повторяющихся границ.

    Сделал вот так:

    Код:
    [REPLACE(re:[^\d*\.\d*\.\d*\.\d*\:\d+]|{br})][DOCSOURCE][/REPLACE]
     
    То есть негативный режим. Все что не подходит под выражение заменяется пустотой. Но в таком случае даже при 5 потоках core i7 24gb ram грузится на 100%. Не пойму где я ошибась, т.к. на лицо оверюз системных ресурсов.

    Пробовал с другим регулярным выражением
    Код:
    (\d{1,3}\.){3}\d{1,3}:\d{2,5}
    
    Но все равно очень сильно грузит процессор. Чувствую что где то близко, однако, несколько дней уже бьюсь над решением этого вопроса. Нужны только прокси, все сайты с разной разметкой и где то например их вообще нет. Поэтому универсальной конструкции кроме как рег экспа не спарсить.
     

    Вложения:

    Последнее редактирование: 2 апр 2017
  11. seodamage

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

    Регистрация:
    5 фев 2014
    Сообщения:
    31
    Перечитал всю ветку, с переодическим тестированием вариантов. Неужели нельзя ничего сделать? Очень не хочу делать это другим софтом(zp).

    upd: сделал на другом софте...
     
    Последнее редактирование: 3 апр 2017
  12. solt

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

    Регистрация:
    27 май 2015
    Сообщения:
    3
    Здравствуйте.
    Подскажите пожалуйста, как можно вытащить из текста все хештеги (слова с приставкой #)?

    Пример, парсится пост с инстаграмм:
    из него нужно вытащить только хештеги, остальной текст удалить.

    Что то вроде

    Код:
    (\#+[0-9a-z-A-Zа-яА-я\.\_]+)
     
  13. sten30

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

    Регистрация:
    7 авг 2014
    Сообщения:
    228
    Помогите пожалуйста составить регулярное выражение для сканера сайтов, чтобы в фильтре собирать только ссылки с десятью цифрами? Ссылки недоступны для гостей

    Вообще-то пример такого регулярного выражения есть в интернет /^\d{10}$/
    Но оно отфильтровывает в сканере вообще все ссылки.
    ------------------------------
    в итоге нашел другую закономерность - 003.ru/003
    но рег выражения тоже интересная штука
     
    Последнее редактирование: 5 май 2017
  14. Root

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

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

    Банально:
    Код:
    re:/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
    Взято из справки Ссылки недоступны для гостей
     
    kagorec нравится это.
  15. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Код:
    re:ru/[\d]{10}/[^\?\=\/\#]+$
     
  16. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    Здравствуйте.
    Нужно взять из Ландшафтный светильник SLV Dasar Uni 229204</div>

    число 229210

    перед числом текст меняется, т.е. там вместо Uni другое может быть.
    стандартными средствами не получается чот.

    нашел в первом посте re:([0-9]+)|<cifri>$1</cifri>

    но не подходит, т.к. цифры бывают в названии еще
    Лампа накаливания диммируемая ударопрочная E27 60W груша матовая 40019</div>


     
    Последнее редактирование: 15 май 2017
  17. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Отдельной границей зацепите наименование товара полностью.
    В поиск-замена
    Код:
    re:([0-9]{6,})|<cifri>$1</cifri>
    <cifri>{get}</cifri>|{get} 
     
    Stan нравится это.
  18. Abricos

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

    Регистрация:
    12 июл 2017
    Сообщения:
    7
    Город:
    Kyiv
    Добрый день, Друзья!
    Помогите разобраться:
    <rt1>Произвольная текстовка1.
    <rt1>Произвольная текстовка2.
    заменить на:
    <div class="fun">Произвольная текстовка1.</div>
    <div class="fun">Произвольная текстовка2.</div>

    т.е. Текстовую информацию оставить не тронутой, а обвесить нужными тегами.
    Спасибо!
     
  19. aresa

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

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Так попробуйте:
    {skip}|<div class="fun">{skip}</div>
     
  20. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    re:<rt1>([^<>]+)|<div class="fun">$1</div>
     
    Abricos и Root нравится это.

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