Использование регулярных выражений

27 фев 2018

  • Общие сведения(top)

    В A-Parser применяются Perl-совместимые регулярные выражения, которые можно использовать:
    • При парсинге произвольной информации с любых сайтов
    • В конструкторе запросов для извлечения или замены части запроса
    • В конструкторе результатов для преобразования любых результатов
    • При использовании фильтров
    • При проверке доступность следующей страницы в парсере Net::HTTP Net::HTTP

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

    Особенности использования в A-Parser'е(top)


    • Регулярные выражения записываются без ограничителей //
    • Поддерживаются следующие флаги:
      • i - поиск без учета регистра символов
      • s - точка включает все символы, включая перенос строк
      • g - глобальный поиск или замена

    Конструктор регулярных выражений(top)



    Начиная с версии 1.2.78 был добавлен Конструктор регулярных выражений.

    Найти его можно на вкладке Инструменты -> Конструктор регулярных выражений
    Так же можно отправлять получаемый код страниц прямо в Тестовом парсинге. Для этого необходимо включить debug режим и кликнуть по ссылке Go to RegEx Builder.
    [​IMG]

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

    Для работы с конструктором нужно в поле слева вставить текст-источник (либо же он будет вставлен автоматически из Тестового парсинга при переходе Go to Regex Builder). Справа настраиваем параметры будущего регулярного выражения.

    Для составления простого Регулярного выражения (например, для получения тайтла) достаточно указать нужные элементы регулярного выражения.
    • В поле Перед группой вписываем символы, которые находятся перед той информацией которая нам нужна
    • В поле После группы вписываем символы, которые находятся после нужных данных
    • В поле Группа начинается с указываем символы, с которых должна начинаться искомая строка
    • В поле Группа заканчивается указываем символы, которые должны быть в конце искомой строки
    • [​IMG]
    Как видно на скриншоте выше, мы составляем регулярное выражение, которое будет выбирать title сайта. Перед группой поставим <title> и после группы </title>, а также, для примера, укажем что искомая строка начиинается с буквы T.

    Для полноценного тестирования полученного регулярного выражения есть возможность включать нужные флаги: g, s и i.

    Также можно составлять более сложные регулярные выражения, в которых 2 и более группы.
    Для примера попробуем составить регулярное выражение для сбора всех ссылок и анкоров в списке ( <li> ). Для этого нам нужно включить флаг g и добавить ещё одну группу поиска, так как в первой группе будут ссылки, а во второй анкоры.
    [​IMG]

    Задав нужные параметры для обеих групп, получаем регулярное выражение.
    Код:
    <li><a href="(.+?)">(.+?)<\/a
    Чтобы проверить регулярное выражение нажмите кнопку Тест
    [​IMG]

    После выполнения регулярного выражения, внизу отображается результат его работы: полная строка и захватываемые группы. При двойном клике на любой элемент в таблице результата, начальный текст прокручивается к месту нахождения данного совпадения.