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

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

  1. Root

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

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

    2018-02-08_00-19-31.png
     
    faqbill, kagorec и xLime нравится это.
  2. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Добрый день.
    Код:
    [IF1][CHARCOUNT]%STRING%[/CHARCOUNT]<300[THEN]The string is less than 300 character[ELSE]The string is more than 300 character[/IF1]
     
    faqbill, kagorec и Root нравится это.
  3. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Еще один способ соответствующий теме:
    Код:
    re:(^.{1,20}$)|@@@$1@@@
    @@@{get}@@@|{get}
    [​IMG]
    [​IMG]

    Цифру 20 необходимо заменить на необходимое количество символов.

    UPDATE (10:40 MSK)
    Код:
    re:(^.{300,300})(.+)|@@@$1$2@@@
    @@@{get}@@@|{get}
    
    [​IMG]

    [​IMG]

    Будьте внимательны при использовании этого метода. Тестируйте на своем тексте!
     
    Последнее редактирование: 8 фев 2018
    faqbill и kagorec нравится это.
  4. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Текст от начала до конца содержит не больше 299 символов, , меняем на пусто (удаляем).
    Код:
    re:^.{0,299}$|
    Строка меньше чем 300 символов, меняем на пусто (удаляем).
    Код:
    re:\n[^\r]{0,299}\r|
    [​IMG]
     
    faqbill, Kreol, xLime и ещё 1-му нравится это.
  5. Ragazzo

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

    Регистрация:
    24 июл 2017
    Сообщения:
    7
    Город:
    Savona
    Здравствуйте. Как парсить текст по определенному списку слов?
     
  6. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Используйте готовый функционал программы "фильтр по ключевикам (Shift+Ctrl+f)", а также макросы, любой на свое усмотрение:
    CHECKENTRY, STRINGFILTER, DELFILESTRING.
     
  7. Ragazzo

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

    Регистрация:
    24 июл 2017
    Сообщения:
    7
    Город:
    Savona
    Ссылки недоступны для гостей вот интересный метод сбора текста. Но есть проблема, разная кодировка у сайтов. Как сделать что бы прога выдергивала текст с постов целиком, без задания параметров?
     
  8. Root

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

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

    Приведите примеры ссылок, откуда нужно парсить текст постов.
     
  9. BlackCard

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

    Регистрация:
    8 мар 2018
    Сообщения:
    37
    Здравствуйте.

    Подскажите пожалуйста регулярное выражение поиска-замены такого типа:

    Начальный код:
    <p class="comments-title">[ЛЮБОЕ ЧИСЛО] [КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д.]</p>

    Конечный код:
    <p class="comments-title">[ЕСЛИ НАЧАЛЬНОЕ ЧИСЛО НЕ БОЛЬШЕ 10 - НЕ МЕНЯТЬ, ЕСЛИ НАЧАЛЬНОЕ ЧИСЛО БОЛЬШЕ 10, удалить все цифры, кроме последней по счету, А ЕСЛИ число оканчивается на 0 - заменить его на 10] [КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д.]</p>

    ------------------------------------------------------------------------------------------------------------------------------------------------------
    Пример 1:
    <p class="comments-title">[137] [отзывов к "КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д."]</p>

    Меняется на:
    <p class="comments-title">[7] [отзывов к "КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д."]</p>
    ------------------------------------------------------------------------------------------------------------------------------------------------------
    Пример 2:
    <p class="comments-title">[14] [отзывов к "КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д."]</p>

    Меняется на:
    <p class="comments-title">[4] [отзывов к "КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д."]</p>
    ------------------------------------------------------------------------------------------------------------------------------------------------------
    Пример 3:
    <p class="comments-title">[30] [отзывов к "КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д."]</p>

    Меняется на:
    <p class="comments-title">[10] [отзывов к "КАКОЙ-ТО ТЕКСТ С СИМВОЛАМИ, ЦИФРАМИ, ЗНАКАМИ И Т.Д."]</p>
     
    Последнее редактирование: 9 мар 2018
  10. Kreol

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

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Используйте CHECKENTRY и пропишите там вариации
    Либо связки IF и TOPRICE
    либо MATH
    не думаю что тут целесообразно писать регулярку
     
    BlackCard и kagorec нравится это.
  11. Root

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

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

    Такие узкоспециализированные задачи проще решать с помощью подключаемого PHP-скрипта для обработки данных:
    Ссылки недоступны для гостей
    Ссылки недоступны для гостей
     
    BlackCard и kagorec нравится это.
  12. vostokfree

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

    Регистрация:
    29 авг 2014
    Сообщения:
    30
    Здравствуйте, подскажите пожалуйста, как заменить последнюю запятую на точку, в строках
    1,1,1,102,72
    1,5,2,97,6
    1,10,3,93,6
    1,20,4,90,72
     
  13. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Добрый день.
    Программы под рукой нет для проверки. Попробуйте это:
    Код:
    re:(.+)(,)(.+)|$1.$3
     
    vostokfree нравится это.
  14. vostokfree

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

    Регистрация:
    29 авг 2014
    Сообщения:
    30
    Получилось так
    1,1,1,102,72
    1,5,2,97,6
    1,10,3,93,6
    1,20,4,90.72
    А хотелось бы заменить последнюю запятую в каждой строчке
     
  15. Atms

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

    Регистрация:
    26 авг 2015
    Сообщения:
    40
    Здравствуйте. Попробуйте вот так
    {textend}|{br}
    {br}{skip},|.{skip}{br}[REV]
     
    Root, kagorec и vostokfree нравится это.
  16. vostokfree

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

    Регистрация:
    29 авг 2014
    Сообщения:
    30
    Все работает. Вы гений! Спасибо.
     
  17. Stan

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

    Регистрация:
    15 июн 2011
    Сообщения:
    499
    Здравствуйте

    Код- часть таблицы
    Код:
    <td><p>Замок</p></td>
    <td>ЗВ-А20-5Л</td>
    <td><p>05132</p></td>
    <td><p>Врезной</p></td>
    <td><p></p></td>
    <td><p> </p></td>
    <td><p> </p></td>
    <td><p></p></td>
    <td><p>10</p></td><td><p>0</p></td>
    </tr><tr>
    из него нужно удалить только эту часть <td><p>10</p></td><td><p>0</p></td>

    такого типа правила <td><p>{skip}</p></td><td><p>{skip}</p></td>|
    почему то удаляет все ячейки . может нужно регуляркой, не подскажите?
     
  18. xLime

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

    Регистрация:
    4 сен 2017
    Сообщения:
    401
    Вот эти части здесь в каждой строке одинаковые:
    <td><p> </p></td>
    Можете просто удалить 2 последних <td> тэга:
    Код:
    </tr>{skip}<td>|</tr>[REV]
    </tr>{skip}<td>|</tr>[REV]
    Регулярка здесь не сильно поможет
    Код:
    re:^<td>[A-Za-zА-Яа-я<\/>0-9]+<td>.+?\n|
    [​IMG]
     
    Root и Stan нравится это.
  19. 4upik

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

    Регистрация:
    11 ноя 2015
    Сообщения:
    23
    Ребята помогите написать регулярку для сканера ссылок :
    Нужно добавлять все ссылки вида
    /category/nazvanietovara

    И не добавлять все ссылки
    /category

    Пытался сам не осилил.
     
  20. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    Вы могли бы по подробнее описать какие ссылки не нужны и какие надо, пример нужных ссылок и НЕнужных?

    П.С. если ответить точно на то как спросили то - "добавьте в фильтре ссылок в запрет re:/category$"
     
    Kreol и xLime нравится это.

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