Что такое регулярные выражения и как с ними работать?
13.12.2023
Регулярные выражения вызывают страх у новичков в маркетинге, ведь кажутся сложными для использования. Однако эта полезная функция способна оптимизировать и ускорить выполнение ваших задач. Поэтому, если вы до сих пор не в теме, но хотите экономить свое рабочее время, эта статья поможет вам разобраться в основах.
Что такое эти регулярные выражения?
Регулярные выражения или regular expressions (часто встречается аббревиатура RegEx) — это элемент языка, предназначенный для поисковых операций и обработки подстрок в текстах. Регулярное выражение выглядит как строка-образец, содержащая символы и метасимволы, и предназначена для настройки поиска.
Представим, что у нас есть список, состоящий из текстовых строк, и перед нами поставлена задача найти строки по сложному фильтру или шаблону. Если выполнять ее вручную, то придется неоднократно проводить отсеивание не соответствующих строк, что займет много времени. Для таких случаев существует регулярка, помогающая кратко описать поисковый запрос и провести операцию с первой попытки.
Как использовать регулярные выражения?
Регулярные выражения помогают решать множество задач из разных сфер. Разберем каждое направление в отдельности.
Регулярные выражения для аналитики
Итак, с их помощью вы можете выполнять следующие задачи:
- Расширить фильтр.
- Настраивать нужные цели.
- Создавать сегменты.
- Создавать более структурированные отчеты.
Если вы работаете с Google Analytics, регулярные выражения также пригодятся при использовании API Analytics и настройке триггеров в Google Tag Manager.
Регулярные выражения для SEO
SEO-специалист может использовать RegEx для:
- Упрощение работы с Google Analytics и Google Search Console.
- Сегментация ранжирования.
- Проведение аудита сайта.
- Анализа логов.
Регулярные выражения для работы с текстовыми редакторами
При использовании текстового редактора применяйте регулярные выражения, чтобы:
- Оптимизировать поисковые процессы.
- Выделять кусочки текста.
- Заменять строчки или слова.
- Удалять либо добавлять нужное.
Регулярные выражения для создания чат-ботов
Используйте RegEx, чтобы:
- Проверять фразы на количество слов, наличие «ключей», пробелов и т.д.
- Вводить числа в определенном промежутке.
- Проверять ссылку на соответствие.
Эти и другие задачи можно использовать и в программировании, работе с API и т.д. Простыми словами, регулярные выражения подходят для удобных поисковых работ во всех поддерживающих их сервисах и программах.
Основы синтаксиса
Символы можно разделить на две группы:
- Литералы — это буквы и цифры, которые вы ищете.
- Специальные или метасимволы, способные указывать действие или изменять выражение.
Регулярное выражение может состоять как исключительно из литералов, например, «Маркетинг», так и только из специальных символов, как «\D.*». Также оно может сочетать в себе сразу две группы — «Маркетинг, \.*$».
Каждый из них отличается по функциям. Для их определения поделим их по категориям:
Символьные классы
Помогают упростить поиск, когда, например, нужно найти не конкретное слово или выражение, а, например, телефонные номера, адреса электронной почты и т.д. В этом случае они работают в качестве команд, помогающих искать информацию по определенной категории, например, букв или цифр.
В эти классы входят:
- «\d» ― указывает только на цифру, то есть эквивалент [0-9];
- «\w» ― соответствует любой цифре, букве или знаку нижнего подчеркивания «_»:
- «\s» ― означает пробел;
- . ― означает любой символ.
К некоторым символьным классам существуют возражения, а именно:
- «\D» ― противоположный «\d», указывает на любой символ, кроме цифр;
- «\W» — противоположный «\w», указывает на любой символ, кроме цифр, букв и знака нижнего подчеркивания;
- «\S» — противоположный «\s», означает любой символ, кроме пробела;
«\» — обратный слэш, предназначенный для экранирования метасимволов, перед которым прописывается. К примеру, если вы хотите использовать точку по назначению, а не как метасимвол, перед ней нужно написать обратный слэш.
Якоря
Они помогают найти строки, которые начинаются или заканчиваются конкретным символом. В соответствии:
- ^ (крышка, каре) ― необходима для поиска строк, начинающихся с символов после нее;
- $ (доллар) ― антипод крышки, ведь находит строки, заканчивающиеся на символы перед ним.
Квантификаторы
Указывают количество повторений одного и того же символа в выражении, когда, например, необходимо найти номера телефонов или банковских счетов. Таким образом:
- * (звездочка) ― демонстрирует, что стоящий перед ней символ может как присутствовать, так и отсутствовать, а также повторяться;
- ? (знак вопроса) ― отличается от * только тем, что не указывает на возможность повторения.
Если вам необходимо указать количество или интервал повторений, напишите это значение в фигурных скобках сразу же после повторяющегося символа. Существует три варианта:
- {n} ― конкретное количество повторений;
- {min,} ― минимальное количество повторений;
- {min,max} —интервал количеств повторений.
Оператор ИЛИ
| ― прямой слэш, помогает в поиске сразу за несколькими фильтрами ― согласно одному ИЛИ другому значению.
Скобки
() (круглые скобки) ― в регулярном выражении предназначены для группировки символов. Помогают составлять сложные поисковые конструкции.
Для примера используем метасимвол ?. Если ввести комбинацию «10?», то поиск выдаст нам числа 1, 10, 100 и так далее. Но при добавлении скобок получится конструкция (10)?, ― мы найдем 10, 100, но пропустим 1.
[] (квадратные скобки) в регулярном выражении ищут значение, соответствующее одному из символов в этих скобках. Например, при комбинации [56789] находятся 6, 6, 7, 8 и 9.
{} (фигурные скобки) указывают системе, сколько раз должен повториться предыдущий символ. Существует несколько вариантов его записи:
- Комбинация 10{5} — ноль будет повторяться 5 раз, и мы получим 100000.
- Комбинация 10{5, 7}— ноль будет повторяться от 5 до 7 раз, поиск выдаст 100000, 1000000, 10000000.
- Комбинация 10{5,} — ноль будет повторяться от 5 раз и более, то есть получим 100000, 1000000, 10000000, 100000000 и так далее.
Помимо простых и специальных символов существуют еще и флаги для регулярного выражения
Они добавляются в шаблон регулярного выражения и расширяют его возможности. Флаги прописываются в конце регулярного выражения.
Существует три основных флага:
- g (global) ― не останавливает поиск после нахождения первого совпадения, а продолжает поиск. Например, Выражение /a/g будет искать все вхождения «a» в тексте.
- m (multi-line) ― с ним операторы и $ обеспечивают совпадение в начале и конце каждой строки ввода, а не всей строки в целом. Например, выражение /A/m найдет «A» в начале каждой строки ввода.
- i (insensitive) ― делает выражение независимым от регистра. Например, Выражение /aBc/i найдет любое вхождение «aBc» независимо от регистра: «AbC», «aBc», «ABC».
Как это работает на практике?
С теорией разобрались, теперь попытаемся определить, какие реальные задачи позволяют решить регулярные выражения.
Пример №1.
На сайте существуют две страницы с контактами:
https://example.com/contact-us/
https://example.com/contact-success/
Мы хотим учесть их посещение пользователями в качестве выполнения одной конкретной цели в сервисе Google Analytics. Для этого мы выбираем цель посещения страницы и указываем выражение contact-us|contact-success.
Пример №2.
Мы обновили дизайн карт товаров и заинтересованы в их влиянии на трафик. Это касается нескольких страниц, ссылки которых отличаются только по цифрам в конце:
https://example.com/products/123
https://example.com/products/456
https://example.com/products/789
Чтобы выполнить это действие в Google Analytics, воспользуемся следующими выражениями:
- Для конкретной страницы: [0-9]$;
- Для выделения всех URL товаров в таблице: .*[0-9]$.
Пример №3.
У нас есть список относительных URL, таких как:
/shop/product/
/about-us/
Цель состоит в превращении этих ссылок в абсолютные посредством добавления домена «web-promo.ua». Для выполнения задачи используем регулярное выражение /, которое выделит первый слэш в строке и позволит провести глобальное изменение.
Выводы
Регулярные выражения — это сверхполезный инструмент для оптимизации поиска, работающий на сокращение потраченного на задачи времени. Используя разные символы и флаги, мы можем по-разному настраивать систему, заставляя ее выдавать более конкретные результаты. Используйте нашу шпаргалку по регулярным выражениям, чтобы оптимизировать рабочие процессы.