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

Регулярные выражения могут использоваться при определении целей Посещение страниц, Составная цель, JavaScript-событие, а также при сегментировании по условиям, в которых фигурируют URL (например, источники трафика).

Примечание

При настройке цели типа «JavaScript-событие» регулярное выражение должно содержать только значение идентификатора (без домена и протокола сайта).

Пример

Чтобы отследить нажатие кнопки с идентификатором, который содержит button или buy, в качестве условия можно указать button|buy.

Выражения обрабатываются в соответствии с синтаксисом RE2 и следующими правилами:

  • Регулярное выражение применяется к полному URL страницы, включая протокол и домен. Например, вы можете использовать регулярное выражение: ^http://.

  • Регулярное выражение применяется дважды: к оригинальному URL и к URL с префиксом www и без него. Благодаря этому результат проверки выражения не зависит от наличия префикса www в домене.

  • Регулярное выражение применяется к декодированному URL, в котором URL-коды (%-последовательности) заменены на декодированные символы (исключение: коды символов /, &, =, ?, # не заменяются; например, %2F не будет заменен на /). Необходимо иметь в виду, что при декодировании символ + заменяется на пробел. Например, регулярное выражение text=слон будет обработано, а text=%D1%81%D0%BB%D0%BE%D0%BD и text=%\w\w — нет.

  • К кириллическим URL не применяется punycode. Например, регулярное выражение ^http://ввв\.сайт\.рф/ будет обработано, а ^http://xn--b1aaa\.xn--80aswg\.xn--p1ai/ — нет.

  • Перед проверкой регулярных выражений из окончания URL исключаются символы ?, #, & и точка (.). Например, для URL http://example.com/?, http://example.com/#, http://example.com/?var=1& сравнение будет производиться с http://example.com/, http://example.com/, http://example.com/?var=1 соответственно. В случае, если пользователь ввел URL http://example.com./, то регулярное выражение \./$ не будет обработано.

  • При проверке регулярных выражений квантификаторам соответствует максимально длинная строка.

  • Проверка производится с учетом регистра символов в URL.

Памятка по регулярным выражениям

В таблице ниже a, b, c, d, e — любые символы, n, m — целые положительные числа.

Допустимые варианты

abc|de

Соответствует одному из вариантов: abc или de.

Классы символов

[abc] или [a-c]

Соответствует любому (одному) символу из перечисленных (или из диапазона).

[^abc] или [^a-c]

Соответствует любому (одному) символу, кроме перечисленных (не входящему в диапазон).

\d

Соответствует цифровому символу. Эквивалентно [0-9].

\D

Соответствует символу, не являющемуся цифрой. Эквивалентно [^0-9].

\s

Соответствует пробелу. Эквивалентно [\t\n\f\r ].

\S

Соответствует символу, не являющемуся пробелом. Эквивалентно [^\t\n\f\r ].

\pL

Соответствует любому символу Unicode.

\w

Соответствует латинской букве любого регистра, цифре или знаку подчеркивания.

При работе с символами Unicode вместо \w используйте класс \pL.

\W

Соответствует любому символу, отличному от латинской буквы любого регистра, цифры или знака подчеркивания.

При работе с символами Unicode вместо \w используйте класс \pL.

Количество вхождений (квантификаторы)

a*

Соответствует символу a, повторенному 0 или более раз (выбирается максимально длинная последовательность из возможных).

a+

Соответствует символу a, повторенному 1 или более раз (выбирается максимально длинная последовательность из возможных).

a?

Соответствует символу a, повторенному 0 или 1 раз (приоритетно наличие символа).

a

Соответствует символу a, повторенному не менее чем n и не более чем m раз (выбирается максимально длинная последовательность из возможных).

a

Соответствует символу a, повторенному не менее чем n раз (выбирается максимально длинная последовательность из возможных).

a

Соответствует символу a, повторенному ровно n раз.

a*?

Соответствует символу a, повторенному 0 или более раз (выбирается самая короткая последовательность из возможных).

a+?

Соответствует символу a, повторенному 1 или более раз (выбирается самая короткая последовательность из возможных).

a??

Соответствует символу a, повторенному 0 или 1 раз (приоритетно отсутствие символа).

a{n,m}?

Соответствует символу a, повторенному не менее чем n и не более чем m раз (выбирается самая короткая последовательность из возможных).

a{n,}?

Соответствует символу a, повторенному не менее чем n раз (выбирается самая короткая последовательность из возможных).

Позиция внутри строки

^

Соответствует началу строки.

$

Соответствует концу строки.

\b

Соответствует границе слова — позиции между алфавитно-цифровым символом (\w) и не алфавитно-цифровым (\W).

\B

Соответствует отсутствию границы слова. Определяется через классы \w и \W.

Экранирование

\

Обратная косая черта перед специальным символом [ ] \ ^ $ . ∣ ? * + ( ) { } означает, что этот символ не является специальным и должен интерпретироваться буквально.

Пример: \$ соответствует значку доллара.

\Q...\E

Все специальные символы в интервале между \Q и \E интерпретируются как обычные символы.

Написать в службу поддержки

Обратите внимание: служба поддержки не обзванивает пользователей. Не следуйте указаниям людей, которые вам звонят и представляются службой поддержки Яндекс Метрики.