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

Discussion in 'Решение различных задач по парсингу' started by kagorec, Mar 19, 2012.

  1. Root

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Здравствуйте.

    {skip},|
     
  2. Root

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Здравствуйте.

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

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

    Joined:
    Jun 15, 2011
    Messages:
    501
    нужно регулярное выражение - забираем все что меньше /4600000/
     
  4. Kreol

    Kreol Модератор Staff Member Модератор

    Joined:
    Jan 6, 2013
    Messages:
    2,666
    такой не существует. Так что лучше просто все собрать и фильтрануть в екселе
     
  5. Stan

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

    Joined:
    Jun 15, 2011
    Messages:
    501
    как правильно года составить ?

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

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

    Kreol Модератор Staff Member Модератор

    Joined:
    Jan 6, 2013
    Messages:
    2,666
    Stan а что есть на входе?
    Но вообще все гениально и просто )
    (1991|1992|2004)
    или так (199[1-9]|200[1-9])
     
  7. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    похоже ему надо значения от 1900-1999 и 2000-2099
    тогда так
    Code:
    re:19([0-9]{2})|19$1
    re:20([0-9]{2})|20$1
     
    Stan likes this.
  8. Stan

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

    Joined:
    Jun 15, 2011
    Messages:
    501
    есть строка - "Название ляляля 2007" и нужно взять только годы , а годы это 19-- и 20--
    а остальное удалить
     
    Last edited: Mar 19, 2017
  9. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Code:
    re:19([0-9]{2})|-==19$1==-
    re:20([0-9]{2})|-==20$1==-
    -=={get}==-|{get}
     
    Stan likes this.
  10. seodamage

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

    Joined:
    Feb 5, 2014
    Messages:
    31
    Здравствуйте.

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

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

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

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

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

    Attached Files:

    Last edited: Apr 2, 2017
  11. seodamage

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

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

    upd: сделал на другом софте...
     
    Last edited: Apr 3, 2017
  12. solt

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

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

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

    Что то вроде

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

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

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

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

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

    Joined:
    Mar 10, 2010
    Messages:
    14,818
    Город:
    Барнаул
    Здравствуйте.

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

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Code:
    re:ru/[\d]{10}/[^\?\=\/\#]+$
     
  16. Stan

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

    Joined:
    Jun 15, 2011
    Messages:
    501
    Здравствуйте.
    Нужно взять из Ландшафтный светильник SLV Dasar Uni 229204</div>

    число 229210

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

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

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


     
    Last edited: May 15, 2017
  17. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    Отдельной границей зацепите наименование товара полностью.
    В поиск-замена
    Code:
    re:([0-9]{6,})|<cifri>$1</cifri>
    <cifri>{get}</cifri>|{get} 
     
    Stan likes this.
  18. Abricos

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

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

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

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

    Joined:
    Oct 17, 2015
    Messages:
    180
    Так попробуйте:
    {skip}|<div class="fun">{skip}</div>
     
  20. kagorec

    kagorec Администратор Staff Member Администратор

    Joined:
    Jan 3, 2011
    Messages:
    4,442
    Location:
    Latvia
    re:<rt1>([^<>]+)|<div class="fun">$1</div>
     
    Abricos and Root like this.

Share This Page