Укр
Рус
Українська мова
Русский язык
Аналитика

Что такое регулярные выражения и как ими пользоваться

«Регулярка» — одна из самых полезных функций в практике использования Google Analytics, и при этом недооцененных. Многие пугаются ее сложности и обходят стороной, и при этом лишают себя сотни сэкономленных часов.
23 сентября 2021
0
16 мин
logo

Хочешь зарабатывать больше? Пройди курс Комплексный интернет-маркетинг от команды tripmydream и освой профессию за 3 месяца!

    Содержание

Регулярные выражения (regular expressions, RegExp) – инструмент, который помогает искать строки текста и проверять их на соответствие указанному шаблону, слову или символу. В результате находим данные, которые отобраны согласно правилу, заложенному в выражении.

Простой пример: У нас есть огромный список URL (текстовые строки), и в этом списке нам быстро нужно найти URL, соответствующие какому-то сложному шаблону, которые руками нужно будет фильтровать и фильтровать в несколько подходов. А с помощью «регулярки» мы можем описать этот шаблон и отфильтровать все URL за одну операцию.

И таких примеров может быть очень много. Регулярные выражения можно применять не только для поиска URL, а вообще для всех текстовых цифровых данных, до которых вы можете дотянуться. Файлы на компьютере, текстовые редакторы и таблицы, системы аналитики вроде Google Analytics и Яндекс Метрики, программа для сбора семантического ядра KeyCollector и другие популярные программы. А шаблоны, по которым нужно найти данные ограничиваются только вашим воображением.

Регулярные выражения доступны и среднестатистическому пользователю ПК, а не только заумным программистам. Так что не упускайте шанс ознакомиться с RegExp поближе.

Регулярные выражения и Google Analytics

В этой статье мы будем ближе знакомиться с regular expressions именно в контексте анализа трафика в Google Analytics (GA). Так что посмотрим, где и для чего в GA можно использовать регулярные выражения.

  • Для расширенного фильтра.
  • Там есть опция “поиск соответствующего регулярного выражения».
  • Для настройки целей.
  • При создании сегментов.
  • Для настройки фильтров в представлениях.
  • Для создания отчетов в таблицах (с помощью Google Analytics Spreadsheet Add-on) или в Google Data Studio.
  • При использовании API Analytics.
  • Для настройки триггеров в Google Tag Manager.

API (Application programming interface) — интерфейс прикладного программирования, который обеспечивает взаимодействие нескольких программ между собой. Например, когда из какой-то одной программы, вы можете получить доступ к данным Google Analytics напрямую.

Как установить Google Tag Manager на свой сайт: детальная инструкция
Читайте также
Как установить Google Tag Manager на свой сайт: детальная инструкция
04 января 2021
0
10

Синтаксис регулярных выражений

Символы в регулярных выражениях разделяют на два вида:

  • Литералы (обычные символы).
    Составляют большую часть символов в регулярных выражениях.
    Представляют сами себя.
  • Метасимволы (специальные символы).
    Указывают на другие символы.

Конечно можно использовать только литералы, но гораздо больше возможностей открывается есть использовать комбинации литералов и метасимволов.

Метасимволы

Для дальнейшего описания, чтобы точно избежать путаницы, имейте ввиду, что метасимвол будет указан в кавычках. Так что если написано “.”, то понимаем это как один символ – точку, а не три символа — кавычку, точку, кавычку.

  • «.» (Точка)
    Означает один любой символ.

    Например «А.» означает любое сочетание большой буквы А и одного любого символа после буквы А: А1, АП, Ас, А8, и так далее.
  • «*» (Звездочка)
    Указывает на то, что символ, который стоит перед звездочкой может присутствовать, отсутствовать или даже несколько раз подряд повторяться.

    Пример: регулярное выражение «20*» будет вылавливать значения: 2, 20, 200, 2000 и так далее. Ведь символ «0» отсутствует в значении «2», присутствует в значении «20» , а также несколько раз подряд повторяется в значениях «200» и «2000».
  • «?» (Знак вопроса)
    Указывает, что предыдущий символ может или присутствовать, или отсутствовать в строке. Никаких повторений несколько раз подряд — этим и отличается от «*»

    То есть, регулярное выражение «20?» будет находить значения «2» и «20», так как 0 там либо отсутствует, либо присутствует. 200 и 2000 уже не соответствуют правилу.
  • «+» (Плюс)
    Указывает на то, что предыдущий символ может присутствовать и даже повторяться несколько раз подряд.

    По такой логике, выражение 20+ найдет значения «20», «200», «2000» и так далее. Но значение «2» уже не пройдет.
  • «^» (крышка, каре)
    Используется для поиска строк, которые начинаются с символов после ^.

    Так регулярному выражению ^15 будут соответствовать строки 15, 152369, 15Авиа и так далее
  • «$» (доллар)
    Антипод метасимвола ^. $ будет фильтровать строки, которые заканчиваются на символы перед знаком доллара.

    Например, 15$ найдет строки: 15, 235958915, вфкомфм15 и т.п.
  • «[]» (квадратные скобки)
    Находят значения, которые соответствуют одному из символов в скобках.

    Например [01234] найдет строки 0, 1. 2, 3 и 4.
    А word[012] найдет word0, word1, word2.
  • «( )» (круглые скобки)
    Круглые скобки используют для группировки символов. Очень нужен, когда приходится составлять сложную конструкцию регулярного выражения.

    Банальный пример, вспоминаем метасимвол «?». По умолчанию он указывает на вхождение или отсутствие только одного предыдущего символа, ну а если нужно проверить больше символов, то нужно использовать круглые скобки.

    Дано строки: 2, 20, 200

    «20?» найдет: 2, 20, 200, 2000
    «(20)?» найдет: 20, 200, 2000, не найдет 2
  • «{ }» (фигурные скобки)
    Указывает на то, сколько раз в строке повторяется предшествующий символ. Причем есть несколько форм записи этой конструкции.
    Например,
    20{4} — ноль повторяться 4 раза = 20000
    20{4,6} — ноль может повторяться от 4 до 6 раз = 20000, 200000, 2000000
    20{4,} — ноль может повторяться от 4 раз = 20000, 200000, 2000000 и так далее.
  • «\» (Обратный слэш, обратная косая черта)
    Используется для экранирования метасимвола. Ставится перед метасиволом, который нужно экранировать.

    Если вам нужно, чтобы точка, была всего лишь точкой, а не метасиволом, то перед ней нужно поставить обратный слэш.

    Например, вам нужно отфильтровать посещения страниц конкретного поддомена: subdomen.site.com
    Если оставить все как есть, то в итоге вы можете получить комбинацию вроде: subdomenosite1com, так как метасимвол точка указывает на абсолютно любой символ.
    Для чистого результата точку нужно экранировать: subdomen\.site\.com
  • «|» (прямой слэш)
    Вертикальная черта задает соответствие ИЛИ, когда в результате фильтра вам нужно найти любое из указанных значений — одно ИЛИ другое значение.

    Регулярное выражения «2|35|341» найдет строки, в которых есть 2 или 35 или 341.
  • «–» (дефис)
    Используется для задания диапазона символов в квадратных скобках.

    Например, вам нужно найти все значения от 0 до 9, то вместо [0123456789], можно использовать [0-9].

    Но, если понадобится задать диапазон от 23 до 29, то [23-29] просто не сработает как нужно, ведь в регулярных выражениях в данной записи не два числа, а четыре цифры: 2, 3, 2, 9. Но, в данном случае, можно записать комбинацию 2[3-9].

Комбинации метасимволов

  • «.*» (точка и звездочка)
    Самая ходовая комбинация, так как указывает на любую последовательность символов. В месте использования этой комбинации могут повторяться любые символы любое количество раз.

    Например, нужно указать все страницы в определенном разделе сайта.
    Нужны все статьи блога в разделе аналитика tripmydream.academy/blog/analytics/

    Записываем
    tripmydream\.academy\/blog\/analytics\/.*

    Экранируем точку и слеши и указываем на любую последовательность символов после категории /analytics/
  • «[^ ]» (крышка в квадратных скобках)
    Указывает на список символов, которые не должны присутствовать в тексте.
    Например, конструкция [^0-9] выбирает все строки, в которых нет цифр.
    [^a-zA-Zа-яА-Я] — все строки, в которых нет букв латиницы и кириллицы.

Конструкции

  • «\d»
    Указывает на любой цифровой символ. Означает то же самое, что и запись [0-9]
  • «\D»
    Противоположно «\d» и эквивалентно записи [^0-9] — указывает на все символы кроме цифр.
  • «\w»
    Указывает на любую букву, цифру (любому алфавитно-цифровому знаку) или знаку нижнего подчеркивания «_».
  • «\W»
    Противоположно «\w». Указывает на любой символ, кроме буквы, цифры или знака нижнего подчеркивания «_».
  • «\s»
    Означает любой пробельный символ.
  • «\S»
    Противоположно «\s», означает любой символ, кроме пробела.

Мы описали только самые основные метасимволы, на самом деле их гораздо больше. Но для работы с Google Аналитикой этого будет вполне достаточно.

Зачем нужны UTM-метки и что они из себя представляют
Читайте также
Зачем нужны UTM-метки и что они из себя представляют
09 августа 2021
0
14

Примеры использования регулярных выражений в Google Analytics

Для фильтрации страниц

Это полезно, если вам нужно выделить не конкретную страницу или раздел, а группу URL, которая строится по какому-то похожему принципу.

Например, у нас на avia.tripmydream.com есть страницы направлений: https://avia.tripmydream.com/routes

Но таких направлений у нас 4 типа страниц, которые в URL отличаются только количеством букв в slug. Если не использовать регулярные выражения мы можем отследить статистику только всей категории сразу или по каждой странице отдельно. Но нам же нужна статистика для каждой группы! :)

  • Перелеты из города в город,
    https://avia.tripmydream.com/routes/iev-tbs
    slug: iev-tbs = 3 буквы - 3 буквы.
    regular expressions: avia\.tripmydream\.com\/routes\/...-...

    Экранируем необходимые знаки с помощью метасимвола «\» и вместо конечных букв подставляем нужное количество символов с помощью метасимвола «.»
  • Перелеты из города в страну,
    https://avia.tripmydream.com/routes/iev-me
    slug: iev-me = 3 буквы - 2 буквы
    regular expressions: avia\.tripmydream\.com\/routes\/...-..$

    Делаем тоже самое, что и в предыдущем варианте, но указываем, что строка заканчивается двумя символами и никак иначе.
  • Перелеты из страны в город,
    https://avia.tripmydream.com/routes/pl-hrk
    slug: iev-me = 2 буквы - 3 буквы
    regular expressions: avia\.tripmydream\.com\/routes\/..-...

    Тут все понятно должно быть.
  • Перелеты из страны в страну.
    https://avia.tripmydream.com/routes/pl-ua
    slug: pl-ua = 2 буквы - 2 буквы
    regular expressions: avia\.tripmydream\.com\/routes\/..-..$

    А вот тут нужно указать, что строка заканчивается двумя символами после дефиса, иначе под это выражение попадет и статистика от страниц из страны в город.

При настройке целей

Например для страницы «Спасибо за заказ», URL которой имеет формат site.com/thankyoupage?order-id=XXXXX у которой меняется идентификатор заявки, т.е. для каждого заказа присваивается уникальный order id.

Можно настроить так: order-id=.*
Или так: \/thankyoupage\/order-id=\d

Или вообще просто указать значение order-id и цель будет срабатывать каждый раз, когда такое значение будет в адресной строке

Для фильтрации трафика сразу по нескольким источникам

Если нужно отобразить данные по источникам трафика google и facebook, можно использовать оператор «|» (или).

google|facebook – отобразятся данные только по источникам и каналам трафика, в названиях которых есть значение google или facebook

Сервисы для проверки регулярных выражений

Если вы работаете с Google Analytics, то нет ничего лучше, чем проверить выражение прямо там. Но также есть специальные сервисы для проверки регулярных выражений:

https://regex101.com
https://regexr.com
https://www.regextester.com
RegExp Tester для браузера chrome

Шпаргалка регулярных выражений

  • | — или,
  • cp(c|m) — cpc или cpm,
  • ^google — начало строки с google (перед google ничего не должно быть),
  • $ — конец строки (после $ ничего не должно быть),
  • . (точка) — любой символ,
    (…… — любое значение содержащее 6 символов),
    (^……$ — значение строго из 6 символов),
  • \ (экран) — ставится ПЕРЕД символом, который нужно экранировать,
  • * (звездочка) — бесконечное количество одинаковых символов подряд (go*gle = gogle, google, gooogle, goooogle…),
  • [a-z] — все буквы латинского алфавита в маленьком регистре,
    [0-9]|1[0-9]|2[0-9] — от 0 до 29,
  • .* — любые значения.

Автор шпаргалки: Владимир Курий, Head of internet-marketing tripmydream.

Что такое CRO и как с ним работать
Читайте также
Что такое CRO и как с ним работать
24 марта 2021
0
17
Понравилась статья?
😍
3
😂
😄
😐
🤔
😩
РАСCКАЗАТЬ ДРУЗЬЯМ:
Комментариев нет