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

Долго не мог начать использовать регулярные выражения (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 в фильтрации безграничны 🙂

Скопировать