Google Аналитика поддерживает регулярные выражения, благодаря чему можно создавать более гибкие определения фильтров данных, ключевых событий, сегментов, аудиторий, групп контента и групп пользовательских каналов.
В GA4 регулярным выражением называют последовательность символов, которая более или менее широко соответствует шаблонам данных Аналитики.
Например, если нужно исключить статистику о посещениях сайта вашими сотрудниками, можно настроить для представления фильтр с регулярным выражением, в котором будут определены все IP-адреса компании. Допустим, это диапазон 198.51.100.1 – 198.51.100.25. Чтобы не вводить каждый из 25 IP-адресов, создайте регулярное выражение вида 198\.51\.100\.\d*, соответствующее всему диапазону.
Если же, скажем, понадобился фильтр, включающий данные по кампании только из двух городов, создайте регулярное выражение вида Санкт-Петербург|Москва (Санкт-Петербург или Москва).
Метасимволы регулярных выражений
Подстановочные знаки
. | Соответствует любому символу, но только одному (букве, цифре или символу). | 1. соответствует 10, 1A 1.1 соответствует 111, 1A1 Примеры |
? | Означает, что предшествующий символ может присутствовать или отсутствовать в строке. | 10? соответствует 1, 10 Примеры |
+ | Означает, что предшествующий символ присутствует и может повторяться несколько раз. | 10+ соответствует 10, 100 Примеры |
* | Означает, что предшествующий символ может отсутствовать, присутствовать или повторяться несколько раз. | 1* соответствует 1, 10 Примеры |
| | Логический оператор ИЛИ. Не используйте этот символ в конце регулярного выражения. |
1|10 соответствует 1, 10 Примеры |
Обозначение позиции в поле
^ | Означает, что соседние символы находятся в начале строки. | ^10 соответствует 10, 100, 10x ^10 не соответствует 110, 110x Примеры |
$ | Означает, что соседние символы находятся в конце строки. | 10$ соответствует 110, 1010 10$ не соответствует 100, 10x Примеры |
Группы
( ) | Означает, что заключенные в скобки символы присутствуют в указанном порядке в любом месте строки. Также используется для группировки других выражений. |
(10) соответствует 10, 101, 1011 ([0-9]|[a-z]) соответствует любой цифре или строчной букве Примеры |
[ ] | Означает, что заключенные в скобки символы присутствуют в любом порядке в любом месте строки. | [10] соответствует 012, 120, 210 Примеры |
- | Означает, что любой символ из заключенного в квадратные скобки диапазона может присутствовать в любом месте строки. | [0-9] соответствует любой цифре от 0 до 9 Примеры |
Экранирование
\ | Означает, что соседний символ нужно интерпретировать буквально, а не как метасимвол регулярного выражения. | \. означает, что точку нужно интерпретировать как пунктуационную точку или десятичный знак, а не как подстановочный знак. 216\.239\.32\.34 соответствует 216.239.32.34 Примеры |
Советы
Пользуйтесь простыми выражениями
Если делать регулярные выражения как можно более простыми, другим пользователям будет проще их интерпретировать и изменять.
Сопоставляйте метасимволы
Используйте обратную косую черту (\), чтобы обозначить в регулярном выражении те метасимволы, которые нужно интерпретировать буквально. Например, если вы используете точку в качестве разделителя групп цифр в IP-адресе, предварите ее обратной косой чертой (\.), чтобы она не интерпретировалась как подстановочный знак.
Ограничивайте соответствие с помощью метасимволов
Регулярные выражения по умолчанию имеют максимально возможный охват. Если явные ограничения не заданы, то будет найдена указанная последовательность символов в окружении любых смежных с ними. Например, при частичном соответствии "блок" означает любую строку, содержащую подстроку “блок”, включая “блок 1”, “яблоко” и “блокада”.
Чтобы настроить более точное соответствие, нужно составить регулярное выражение иначе. Чтобы найти именно слово блок, обозначьте, что оно должно стоять одновременно в начале и конце строки: ^блок$.