Как разбить utm-метку с помощью регулярных выражений
Для интернет-маркетолога обычно стоит обратная проблема → сгенерировать utm-метку. А вот для аналитика, нужно связать данные и такие utm-метки нужно научиться разбивать. Это можно сделать программным путём, но сегодня расскажу как это сделать через Google Sheet с помощью регулярных выражений.
Убьем двух зайцев. Потренируемся составлять формулу регулярных выражений, и сделаем инструмент, который может пригодиться в будущем.
Допустим, у нас есть ссылка:
url.ru?utm_campaign=campaign&utm_source=source&utm_medium=medium
Используем RegEx (регулярные выражения) сначала для извлечения utm_campaign:
RegExReplace(ЯЧЕЙКА-С-ССЫЛКОЙ, ".*(\?|\&)(utm_campaign\=)","")
Объяснение формулы:
. (точка) — это любой символ
* (звездочка) — это любое количество символов
То есть начало звучит так: «может быть любое количество любых символов».
После этого ставим остановку, до какого момента у нас может быть «любое количество, любых символов»
(\?|\&) — скобочки — это группировка, то есть вначале смотрим что происходит в этих скобочках.
\? — знак \ обозначает что следующий символ будет обычных символом, а не служебным регулярным выражением. А знак вопроса, что надо будет искать.
| — знак ИЛИ. регулярное выражение будет искать ?, если не найдет, то будет искать &.
(utm_campaign\=) — группа, которая говорит, что надо найти выражение utm_campaign=
После этого мы получим выражение
campaign&utm_source=source&utm_medium=medium
а все что было до campaign отрежется (дословно по Google Sheet заменит на пустоту). Поэтому нам нужно повторить формулу, чтоб убрать лишние символы в конце:
=REGEXREPLACE(REGEXREPLACE(A2,".*(\?|\&)(utm_campaign\=)",""),"\&.*","")
или
=REGEXREPLACE(СТАРОЕРЕГВЫРАЖ,"\&.*","")
В этой формуле мы в начале ищем символ &, а после нам нужны любые символы (`.`) до тех пор, пока эти символы будут встречаться (`*`).
Если хочет посмотреть пример, то он доступен по этой ссылке.