Как новичку разобраться в регулярных выражениях
Раньше из регулярных выражений я использовал только (.*) :) Несколько друзей настоятельно советовали мне разобраться в этом вопросе. Но не понимая, где их можно применять, я откладывал это до лучших времен.
Все изменилось, когда мне пришлось более плотно работать с 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 полезных регэкспов с наглядным разбором;
- Некоторые ошибки при написании регэкспов;
- Регулярные выражения, пособие для новичков (первая, вторая часть) ;
- Истинное могущество регулярных выражений;
- Шпаргалка по регулярным выражениям и объяснения к шпаргалке.
Выводы
Регулярные выражения — полезный, мощный и совершенно бесплатный инструмент для обработки строковых данных и упрощения работы в различных сервисах.
Его достаточно сложно освоить, ещё сложнее научиться правильно применять. Взамен этот инструмент существенно облегчит вашу работу и сделает её гораздо эффективнее.
Набросаем любимых регулярных выражений в комментариях?
Комментарии:
Продвигаем медицинский проект. Кроме цифр рассказываем, что и как делали...
21 09 2023 3:42:34
Ошибки, которые допускают новички и теряют деньги, трафик, клиентов....
20 09 2023 23:37:13
Внедрение скрама, чтобы решить проблемы в управлении бизнесом, год работы на нем и отказ от методологии. Читайте об опыте Boosta, которая объединяет 9 SEO-комaнд на удаленке....
19 09 2023 3:11:53
Как и зачем мигрировать со старой на новую версию API на языке R. С пакета RAdwords на rgoogleads. Руководство от Алексея Селезнева. Читать дальше!...
18 09 2023 0:19:17
Важный вопрос, если вы рассчитываете на вирусный эффект своих рекламных идей....
17 09 2023 22:13:50
Как изменить геовыдачу с помощью настроек Google, Яндекс или специальных дополнений...
16 09 2023 23:23:54
Как Netpeak работал с сайтом филиала крупного бренда и добился результатов, несмотря на то, что сервера проекта находятся в другой стране....
15 09 2023 6:31:34
Статья Оливера Гарднера посвящена различным аспектам оптимизации посадочных страниц: дизайну, контексту, созданию кнопки действия...
14 09 2023 7:57:18
Первое подробное руководство по работе с оконными функциями в Google BigQuery....
13 09 2023 11:12:53
Сотрудник Google расскажет о том, как присоединиться к протесту, не навредив сайту....
12 09 2023 3:25:22
Ошибка, которая может привести к полной потере контроля над вашим сайтом. Рассказываем, что это такое, какие могут быть причины поломки и как исправить. Узнать больше!...
11 09 2023 21:48:11
С помощью этой шпаргалки вы легко распределите акценты и начнете последовательно внедрять маркетинговую стратегию по продвижению мобильного приложения...
10 09 2023 21:18:35
Мы хотим найти и купить локальную комaнду SEO или PPC-специалистов. Как обычно, делаем предложение нестандартно — в блоге...
09 09 2023 23:47:58
В семье Leo Burnett - 7750 человек из 84-х стран мира. В Украине всего - 90 творческих единиц....
08 09 2023 16:35:47
Исследование по 38,5 миллионам кликов в 22 тематиках в 391 городе страны....
07 09 2023 23:18:39
330 миллионов активных пользователей и 14 миллиардов просмотров в месяц. Хорошо бы там запускать рекламные кампании....
06 09 2023 13:31:25
Мы отключили интернет всем сотрудникам агентства интернет-маркетинга и получили удивительные результаты....
05 09 2023 20:30:40
Когда и зачем я начал учить R, с какими сложностями столкнулся, как появилась и реализовывалась идея создания курса...
04 09 2023 7:20:55
Что делать, если денег нет, но трафик очень нужен: советы по раскрутке бренда в фейсбуке. В бесплатном продвижении главный ресурс — время: часы, дни, недели, месяцы, проведенные на площадке. Как их применить? Читайте!...
03 09 2023 1:30:48
О феномене Баадера-Майнхофа — как на самом деле работают системы баннерной рекламы в интернете...
02 09 2023 20:37:46
Тематический кейс в нише «Фотография и аксессуары»: проделанные работы и полученные результаты...
01 09 2023 20:18:29
Специалистам часто приходится проводить вебинары и для этого нужна адекватная площадка. В инсайдерском посте мы рассказываем, как выбирали подходящую платформу для проведения вебинаров и что из этого вышло....
31 08 2023 23:40:37
Как сэкономить время, ресурсы, и сделать онлайн-маркетинг эффективнее с помощью языка R...
30 08 2023 1:19:55
История о предсказательной аналитике системы автоматизации маркетинга, онлайн-магазине и ненужных письмах....
29 08 2023 22:36:25
Direct сделал подарок всем, кто уже давно хотел увеличить привлекательность своих объявлений — добавил возможность включения видеодополнений к текстово-графическим кампаниям. Как включить новую фишку от Директа и достаточно ли она эффективна?...
28 08 2023 4:31:15
Для защиты конфиденциальной информации в организации вводят режим коммерческой тайны. Подписание NDA важно не только с сотрудниками, но и со сторонними компаниями, имеющими доступ к конфиденциальной информации...
27 08 2023 6:40:47
Быстрый инструмент для повышения CTR — дополнительные ссылки Google Рекламы...
26 08 2023 9:29:51
Со старта сотрудничества, рост видимости сайтов клиента вырос в 15 раз....
25 08 2023 21:18:36
Правила Facebook позволяют пользоваться автоматизированным контролем над эффективностью рекламы. Читайте, как уменьшить количество ручной работы с помощью автоматических правил...
24 08 2023 0:30:38
Анализируя поведение аудитории, вы сможете понять, почему клиенты приходят на сайт, почему уходят, и почему не делают заказы....
23 08 2023 22:42:18
Пиксель Facebook — инструмент аналитики рекламной системы, который можно использовать и для Instagram....
22 08 2023 19:17:28
Важно иметь прорывное мышление — о таком подходе к бизнесу написана книга Люка Уильмса «Переворот»....
21 08 2023 13:23:53
Быстрый и бесплатный способ настройки целей через Google Tag Manager....
20 08 2023 3:55:42
Несколько фишек Google Tag Manager, чтобы сделать продвинутые списки ремаркетинга....
19 08 2023 5:47:10
Советы специалистов Netpeak: виды фильтров Google, что с этим делать и как снять ручные санкции Google....
18 08 2023 2:42:17
Работаете со скриптами R регулярно? Потратьте десять минут на настройку автозапуска и избавьтесь от необходимости активировать R-скрипты вручную...
17 08 2023 16:21:26
Когда на сайт добавляют новый контент, он тут же трaнcлируется в RSS-ленту и отображается в специальных программах для чтения, либо в email подписчиков. Как это работает?...
16 08 2023 10:20:48
Безопасность Instagram — что делать, если заметили попытку взломщиков украсть аккаунт, и как вернуть аккаунт после взлома....
15 08 2023 4:32:25
Кейс продвижения Pizza House — ROMI 709,9%. От старта с дублями страниц и постановки целей и задач продвижения, проведения технического аудита, аналитики, анализа поисковых фраз, выбора контента до экспериментов с метатегами, увеличения среднего чека и планов на будущее...
14 08 2023 8:54:26
Реклама Facebook для вовлечения пользователей помогает привлечь внимание к приложению и удержать пользователей в условиях перенасыщенного рынка....
13 08 2023 2:42:24
Ексель для чайникiв. Как импортировать всю необходимую информацию из Google ***ytics с помощью простого интерфейса Excellent ***ytics....
12 08 2023 15:28:10
Настройка аналитики для пустого поиска, а также поиска по методам GET и POST...
11 08 2023 11:35:40
Рассказываем про маркетинговые техники продающих email рассылок...
10 08 2023 20:39:41
Проверьте свою логику, находчивость и креативность...
09 08 2023 7:56:42
Для продвижения интернет-магазина женского нижнего белья мы решили попробовать новый источник привлечения клиентов....
08 08 2023 16:27:28
Как стать востребованным сео оптимизатором: 35+ ссылок для обучения и совершенствования своих знаний, а также советы...
07 08 2023 1:56:54
Как вернуть на сайт как можно больше пользователей...
06 08 2023 9:55:34
Алексей Селезнев, руководитель отдела аналитики Netpeak делится статистикой по самым дорогим и самым дешевым тематикам, регионам размещения рекламы, каналам и устройствам. Узнать больше!...
05 08 2023 16:27:10
Как бесплатно пользоваться преимуществами, особенностями и дополнительными инструментами сервиса...
04 08 2023 1:14:40
Краш-тест сервиса визуализации данных: выбираем задачу, источники, создаём отчет с помощью DataDeck. Бонус в конце — лаконичные списки преимуществ и недостатков этого инструмента и приятный подарок для дочитавших...
03 08 2023 8:40:32
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::