Долго не мог начать использовать регулярные выражения (regex) — было сложно въехать в логику их работы. Между тем, они значительно убыстряют рутинные задача. Проблема в том, что большинство описаний было «для разработчиков» и с первых строк они скорее запутывали чем разъясняли.
Эта статья без углубления содержит набор типовых «рецептов».
Регулярные выражения сегодня встроены практически во все популярные инструменты работы с контекстной рекламой (Яндекс Директ и Google Adwords) и системы аналитики (Google Analytics и Яндекс Метрику). Прежде всего в инструменты фильтрации и выбора.
Например:
Условия выбора цели цели в Яндекс Метрике
Фильтрация в отчетах Google Analytics:
Можно привести еще много примеров.
Регулярные выражение это инструмент поиска и фильтрации текстовых строк. То есть мы задаем шаблон — а инструмент подбирает все строки удовлетворяющие этому шаблону.
Простые примеры использования. Пусть у нас есть множество страниц сайта вида:
catalog/products1a
catalog/products2b
products1
catalog/category
catalog/category1
catalog/category2
и нам нужно выбрать только определенные
- Выбрать все продукты. Просто пишем: products. Выберутся строки 1 и 2 и 4. Потому что в них обоих присутствует слово products
- Выбрать продукт и категории. Используем знак | (или): products|category. Выберутся все строки в которых встречается product или category (то есть строки 1,2,3,4,5,6)
- Выбрать category. Если мы просто напишем category, то выберутся и строки category1 и category2. Для того чтобы показать, что после слова ничего не должно быть используем знак $: category$. Выберется строка 4, т.к. она единственная где после category больше нет символов
- Выбрать products1. Аналогично предыдущему примеру, но мы должны выбрать строки, где products1 стоит в начале и до него нет других символов. Используем знак каре ^: ^products1. Выберется строка 3 — она единственная где встречается products1 в самом начале строки
- Выбрать products_a, где на месте _ может стоят любой символ. Используем . : products.a
- Если нужно выбрать только products1a и products2b, можно поступить двумя способами:
- products1a|products2b
- а можно использовать скобки: products(1a|2b)
- Частая задача — в source / media есть трафик cpc, который идет с нескольких площадок (yandex / cpc, google / cpc, avito / cpc). Выражение для выбора только yandex и google : (yandex|google) / cpc
Это, самая верхушка айсберга и наиболее популярные шаблоны использования. С практикой понимаешь, что возможности regex в фильтрации безграничны 🙂