Как новичку разобраться в регулярных выражениях
Раньше из регулярных выражений я использовал только (.*) :) Несколько друзей настоятельно советовали мне разобраться в этом вопросе. Но не понимая, где их можно применять, я откладывал это до лучших времен.
Все изменилось, когда мне пришлось более плотно работать с Google ***ytics и Google Tag Manager в Netpeak. Без понимания регулярных выражений сложно представить себе нормальную настройку фильтров, пользовательских сегментов в GA или правил в GTM.
А теперь давайте разберемся, с чего стоит начать изучение регулярных выражений новичку.
Что такое регулярные выражения
Регулярные выражения (regular expressions, RegExp) — наборы символов, применяемых для поиска текстовых строк, соответствующих требуемым условиям. Результат применения регулярного выражения — подмножество данных, отобранное согласно логике, заложенной в выражении. Регулярные выражения применяются в любых задачах по поиску в множестве данных, для которых нужно получать выжимку по определенным правилам.
Синтаксис регулярных выражений
Большинство символов в регулярных выражениях представляют сами себя, за исключением группы специальных символов «[ ] \ / ^ $ . | ? * + ( ) { }». Если эти символы нужно представить в качестве символов текста, их следует экранировать обратной косой чертой «\».
Если эти спецсимволы встречаются без обратной косой черты, значит у них особенные значения в регулярных выражениях:
- «^» — каретка, циркумфлекс или просто галочка. Начало строки;
- « — знак доллара. Конец строки;
- «.» — точка. Любой символ;
- «*» – знак умножения, звездочка. Любое количество предыдущих символов;
- «+» – плюс. 1 или более предыдущих символов;
- «?» – вопросительный знак. 0 или 1 предыдущих символов;
- «( )» – круглые скобки. Группировка конструкций;
- «|» – вертикальная линия. Оператор «ИЛИ»;
- «[ ]» – квадратные скобки. Любой из перечисленных символов, диапазон. Если первый символ в этой конструкции – «^», то массив работает наоборот – проверяемый символ не должен совпадать с тем, что перечислено в скобках;
- «{ }» – фигурные скобки. Повторение символа несколько раз;
- «\» – обратный слеш. Экранирование служебных символов.
Также существуют специальные метасимволы, ими можно заменить некоторые готовые конструкции:
- \b — обозначает не символ, а границу между символами;
- \d — цифровой символ;
- \D — нецифровой символ;
- \s — пробельный символ;
- \S — непробельный символ;
- \w — буквенный или цифровой символ или знак подчеркивания;
- \W — любой символ, кроме буквенного или цифрового символа или знака подчеркивания.
Пять способов протестировать свои знания о регулярных выражениях
При изучении регулярных выражений очень важна пpaктика. Чем больше пpaктикуешься, тем быстрее начинаешь строить нужные конструкции и решать поставленные задачи.
1. Изучаем регулярные выражения в текстовом редакторе
Почти всем новичкам я сразу рекомендую ставить текстовый редактор NotePad++ и начинать тренироваться в нём. Почему именно в этом текстовом редакторе:
- в большинстве случаев спецсимволы не нужно экранировать;
- Notepad++ сохраняет конструкции предыдущих запросов;
- функция «Пометки» наглядно показывает результат поиска по заданной конструкции и позволяет быстро внести правки:
2. Проверяем знания регулярных выражений в Regex
Онлайн-сервис regex101.com позволяет ввести набор данных и регулярное выражение. После этого в наборе данных подсветятся строки, соответствующие выражению. В специальном окне Explanation регулярное выражение разбирается по частям:
Давайте потренируемся: задача — подсветить всю строку полностью. Нужно поставить галочку напротив «multi line».
Тестовые данные:
https://www.site.ru/www.site.com/search?q=widget+thinger https://www.site.com/page1/page2/page3/https://www.site.com/index.php https://www.site.com/products/100.php https://www.site.us/products/101.php https://www.site.com/products/102.php https://www.site.ru/duals/index.html https://www.site.com/ourteam/index.phphttps://www.site.com/ https://site.com/profilehttps://www.site.ru/ua/index.php https://www.site.com/ua/producty/100.php https://www.site.com/ua/producty/101.php https://www.site.com/ua/producty/102.php https://1.site.com/search?q=widget https://www.site.com/search?q=widget+thinger https://www.site.com/search?q=smidges https://www.site.com/index/yy.jpg
Регулярные выражения для проверки знаний:
- выбрать все страницы;
- (.*) — любое количество любых символов;
- выбрать все страницы с https;
- ^https.* — все URL, начинающиеся с https;
- все страницы на украинском языке;
- .*/ua/.* — все страницы, в URL которых содержится /ua/. Если использовать просто ua, в выборку попадет https://www.site.com/duals/index.html, это лишнее;
- все индексные страницы;
- .*index\.(php|html) — аналогично прошлому выражению, нельзя просто использовать index;
- все карточки товаров (для русской и украинской версий) ;
- .*product(s|y).* или .*product[sy].* — оба варианта подходят.
3. Тестируем регулярные выражения с помощью Jsfiddle
Jsfiddle — инструмент для экспериментов с JavaScript. В нем можно проверить условия для запуска функции или демонстрации нужных результатов.
В этом примере видно, как на основании регулярных выражений сначала определяется, является ли нажатый элемент ссылкой на файл .pdf или .jpg. После этого для элементов, которые не являются ссылками на файлы, определяются название и цена товара. Все это выясняется, исходя из текстового содержимого элементов.
4. Проверяем ошибки в регулярных выражениях с помощью Google ***ytics
Самый быстрый способ проверить знания о регулярных выражениях в Google ***ytics — фильтры в стандартных отчетах. Зайдите в свой аккаунт и в любом отчете, где доступны фильтры, попробуйте отобрать какой-либо набор данных.
5. Нестандартные методы освоения регулярных выражений
Для тех, кто любит интеpaктив:
Жадные и ленивые кванторы
Кванторы в регулярных выражениях позволяют определить часть шаблона, которая должна повторяться несколько раз подряд. «Жадный» квантор старается захватить наибольший кусок текста, который только может. А «ленивая» версия (добавляется символ-модификатор «?») ищет наименьшее из возможных вхождений.
Жадный квантор (*) захватывает все — от первых кавычек до последних:
Ленивая версия квантора (*?) ищет наименьшее совпадение, поэтому найдет каждую подстроку по отдельности:
Где использовать регулярные выражения
SEO-специалисты прибегают к регулярным выражениям при работе с Google ***ytics, Яндекс.Метрикой, RewriteRule в .htaccess, в текстовых редакторах, при работе с краулерами (Netpeak Spider).
Расскажу о нескольких регулярных выражениях, которые часто мне помогают.
1. Выделить всё, кроме домена:
.*://|/.*
Использую, когда есть большой список URL-адресов (например, внешних ссылок) и для анализа нужно вычлeнить только домен. В NotePad++ с помощью функции замены меняю на пустую строку и получаю чистый список доменов:
2. Выделить URL заданной вложенности:
.*://site.com/.*?/.*?/.*?/
Здесь конструкция (/.*?/) обозначает один уровень вложенности.
Использую это выражение, когда нужно задать максимально разрешенную вложенность URL при сканировании сайта в Netpeak Spider.
Чтобы просканировать все URL адреса только первого уровня вложенности, в сервисе нужно задать такие настройки:
Что еще почитать о регулярных выражениях
- 8 полезных регэкспов с наглядным разбором;
- Некоторые ошибки при написании регэкспов;
- Регулярные выражения, пособие для новичков (первая, вторая часть) ;
- Истинное могущество регулярных выражений;
- Шпаргалка по регулярным выражениям и объяснения к шпаргалке.
Выводы
Регулярные выражения — полезный, мощный и совершенно бесплатный инструмент для обработки строковых данных и упрощения работы в различных сервисах.
Его достаточно сложно освоить, ещё сложнее научиться правильно применять. Взамен этот инструмент существенно облегчит вашу работу и сделает её гораздо эффективнее.
Набросаем любимых регулярных выражений в комментариях?
Комментарии:
Используем маску ввода для оптимизации сбора телефонных номеров в формах на сайте: кейсы агентства Netpeak...
18 09 2024 10:54:10
Из нового исследования вы узнаете, сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане в третьем квартале 2018 года...
17 09 2024 14:19:28
Руководство по переносу кампаний в новый аккаунт Рекламы...
16 09 2024 19:11:52
В помощь контент-маркетологам, редакторам, авторам и бизнесу: идеи, которые учитывают фактор SEO. Переупакуйте статьи, заметки, любые другие посты — угодите читателям и поисковикам. Узнать больше!...
15 09 2024 18:58:30
Пост о том, как и когда тратит деньги американский и украинский покупатель...
14 09 2024 16:15:31
Alexa Rank учитывает как число страниц, так и количество просмотров страниц. Alexa Rank 1, что означает, что все сайты и сервисы Google посещают больше всего посетителей в интернете....
13 09 2024 6:26:25
Те самые проблемы, если бизнес пришел к вам за услугой, но ему не нужен маркетинг в интернете. Мнения экспертов интернет-маркетинга....
12 09 2024 4:57:49
Правила, законы, платное и бесплатное продвижение в Telegram...
11 09 2024 0:36:19
Рост количества транзакций на 417%, дохода на 560%, среднего чека на 28%....
10 09 2024 20:29:28
Почему Google ***ytics не видит ссылки на HTTP-сайт с сайта на HTTPS?...
09 09 2024 8:34:11
Кейсы, фишки и советы, опыт крупных брендов, маркетологов....
08 09 2024 4:33:23
Как SQL-запросы сайтов и Google Sheets освобождают SEO-специалиста от рутины...
07 09 2024 14:50:46
Бесплатная регистрация сайта в поисковых системах и каталогах – отличный способ увеличить объемы трафика и раскрутить собственный ресурс....
06 09 2024 0:10:16
Информация для бизнесменов, интернет-маркетологов и всех, кто интересуется продвижением бизнеса в интернете....
05 09 2024 12:23:31
Данные, приведенные в исследовании, могут помочь в составлении медиапланов по продвижению в интернете. Читать дальше....
04 09 2024 3:43:57
Основная цель CTA — помочь посетителю принять решение о покупке, скачивании, регистрации или подписке...
03 09 2024 19:55:10
Как стандартизировали сбор данных по проектам клиентов и отчетности, чтобы тратить меньше времени и не совершать лишние действия...
02 09 2024 15:46:19
Пример использования пакета google***yticsR от Марка Эдмондса...
01 09 2024 0:41:14
Рецензия на книгу «Нейромаркетинг в действии» Дэвида Льюиса...
31 08 2024 8:15:13
Как автоматизировать рутину в Google Таблицах с помощью Google Apps Script...
30 08 2024 8:52:18
Создаем список тем, которые заинтересуют пользователя — для этого используем простые сервисы по типу Вордстат. Также изучаем деятельность конкурентов. Узнать больше!...
29 08 2024 2:30:10
Что делать перед составлением рекламного бюджета — инструкция для предпринимателей...
28 08 2024 13:52:11
Google Penguin официально стал частью основного алгоритма поисковика. Как обезопасить свой бизнес и встретить апдейт алгоритма Google во всеоружии? О трафике, анкорах, бэклинках, ссылках и ссылочной массе, трастовости и постоянном мониторинге, с комментариями специалистов...
27 08 2024 17:12:53
Андрей Чумаченко про будни топ-менеджера, постановку, декомпозицию, помощь и контроль выполнения задач сотрудниками комaнд, которые входят в состав департамента маркетинга, а также о регулярных встречах и тонкостях работы. Узнать больше!...
26 08 2024 5:56:14
Как составить список, работа с которым займет меньше времени, чем обычно. На примере обработки запросов в ювелирной тематике....
25 08 2024 1:22:51
Свежесть и актуальность контента — главные уроки из Google December 2020 Core Update. Почему — читайте в статье....
24 08 2024 9:16:11
Как автоматически формировать и выгружать готовые рекламные кампании для Яндекс.Директ и Google Ads со структурой «одна группа объявлений — один key»...
23 08 2024 7:35:45
В третьем квартале Netpeak внедрил множество крутых улучшений. Мы подробно расскажем о семи самых интересных новостях....
22 08 2024 18:31:46
Краткий обзор динамических мультимедийных объявлений...
21 08 2024 23:30:23
Одесские магазины, где продают вечерние и свадебные платья нуждаются в особом внимании интернет-маркетинга. Как настроить контекстную рекламу для малого и среднего бизнеса со скромными маркетинговыми бюджетами...
20 08 2024 13:54:27
Объявление или кабинет блокируют из-за эмоджи. Что делать?...
19 08 2024 23:38:10
Главная задача крауд-маркетинга — помочь, дать пользователю экспертный ответ и уже в последнюю очередь — оставить ссылку...
18 08 2024 21:15:31
Динамический ремаркетинг — один из самых эффективных способов продаж для любой группы товаров. В этой статье мы поделимся тонкостями технической подготовки к запуску динамического ремаркетинга в Facebook....
17 08 2024 8:11:33
Участники Netpeak Cluster поделились своими инсайтами....
16 08 2024 4:32:44
А сейчас про конференцию Netpeak Friends Day для друзей Netpeak Group...
15 08 2024 20:49:31
Хотите раскрутить свои соцсети в 2022 году? Тогда уже сейчас нужно задуматься, что будете публиковать. В статье расскажем, какой контент будет в тренде в будущем году....
14 08 2024 15:18:26
Анализ цены за клик в 25 тематиках и 852 городах Украины, России, Казахстана, Болгарии...
13 08 2024 16:38:55
Как подготовиться и сделать из интервью полноценную историю, которая будет интересна аудитории...
12 08 2024 4:10:50
Обновление от Google, запущенный в октябре 2015 года. Это просто веб-страницы, но в их основе находится AMP HTML, формат для максимального ускорения загрузки на телефонах...
11 08 2024 20:59:45
После нехитрых манипуляций с текстом вторая строка оказывается в заголовке....
10 08 2024 8:33:24
Визуализация данных для новичков. Отвечаем на вопрос читателя....
09 08 2024 15:13:18
Как избежать скликивания — инструкция...
08 08 2024 4:10:57
Стив Рейсон назвал 20 уроков, которые BuzzSumo усвоил на пути к топу самых популярных сервисов для контент-маркетологов....
07 08 2024 12:17:41
Ежегодный прирост рынка фриланса в Украине составляет в среднем 35%. В прошлом году зарегистрировано более 200 тысяч проектов на общую сумму 385 млн гривен....
06 08 2024 21:22:37
Технологии решают, но не всегда....
05 08 2024 13:50:46
SEO-специалисты используют создание поддоменов, подпапок или отдельных доменов...
03 08 2024 17:55:49
Что ждет новичка в его первый день работы в Netpeak — подарки, первые задачи и традиции компании. Все, что нужно знать, чтобы меньше волноваться и влиться в коллектив. Узнать больше!...
02 08 2024 20:34:12
Профессиональный уровень SEO-специалиста в штатных комaндах редко определяется конкретной категорией (Junior, Midle, Senior). Но большинство считает себя мидлами. Узнать больше!...
01 08 2024 16:32:38
Создатели алгоритмов соцсетей используют слабые места человеческого мозга. Случайно или намеренно, но они это делают. Как нам с этим жить?...
31 07 2024 10:24:43
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::