Как новичку разобраться в регулярных выражениях
Раньше из регулярных выражений я использовал только (.*) :) Несколько друзей настоятельно советовали мне разобраться в этом вопросе. Но не понимая, где их можно применять, я откладывал это до лучших времен.
Все изменилось, когда мне пришлось более плотно работать с 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 полезных регэкспов с наглядным разбором;
- Некоторые ошибки при написании регэкспов;
- Регулярные выражения, пособие для новичков (первая, вторая часть) ;
- Истинное могущество регулярных выражений;
- Шпаргалка по регулярным выражениям и объяснения к шпаргалке.
Выводы
Регулярные выражения — полезный, мощный и совершенно бесплатный инструмент для обработки строковых данных и упрощения работы в различных сервисах.
Его достаточно сложно освоить, ещё сложнее научиться правильно применять. Взамен этот инструмент существенно облегчит вашу работу и сделает её гораздо эффективнее.
Набросаем любимых регулярных выражений в комментариях?
Комментарии:
Пpaктика: где искать шаблоны скриптов, как их редактировать и какие есть меры предосторожности при работе со скриптами....
15 03 2025 12:50:39
Кейс, в котором мы описываем работу с одним из наших старейших клиентов (с 2014 года) и как нам пришлось изменить устоявшийся формат работы и рекламного бюджета, чтобы соответствовать реалиям 2020 года....
14 03 2025 22:10:48
О том, как рассчитать коэффициент ROI (ROMI) для выявления эффективности и прибыльности рекламных кампаний...
13 03 2025 1:59:23
Новая инструкция, которую можно применять к любым задачам в Google Таблицах....
12 03 2025 18:36:27
Подробно об оплате аккаунтов и налогообложении рекламы в Украине, России, Казахстане....
11 03 2025 5:48:37
Как подготовиться и сделать из интервью полноценную историю, которая будет интересна аудитории...
10 03 2025 22:37:16
Красивый слог и сюжет должны быть в интеpaктивной оболочке, соответствующей времени. Проект Gutenbergz идет к созданию именно такой — идеальной истории для людей XXI века. О пути к этой цели, топе App Store и успехе на Kickstarter мы поговорили с руководи...
09 03 2025 14:33:59
+ таблица с примерами использования каждой функции....
08 03 2025 16:46:31
Обучение SEO, PPC, курс по изучению языка R, академии Netpeak Software, Serpstat и другие. Список обновляется....
07 03 2025 15:26:13
Как использовать сториз для бизнеса на полную? Фишки от пpaктиков SMM-продвижения....
06 03 2025 13:29:34
Быстро разогнать рекламные кампании и получить рост конверсий при повышении CPA до 100%. Как этого добиться — читайте в новом кейсе....
05 03 2025 20:24:54
Образ гармонии, почерк и потребности — рецензия на книгу Яна Чихольда «Облик книги»....
04 03 2025 12:31:40
Как автоматически формировать и выгружать готовые рекламные кампании для Яндекс.Директ и Google Ads со структурой «одна группа объявлений — один key»...
03 03 2025 15:15:39
Данные по 22,4 миллионам кликов в 46 тематиках и 392 населенных пунктах страны — собрана статистика исключительно по проектам агентства Netpeak. Узнать больше!...
02 03 2025 8:23:56
Готовые коробочные решения — отличная идея, которая решает много задач, а ещё это относительно недорого. Но такой вариант подойдет далеко не всем. Узнать больше!...
01 03 2025 21:32:20
Техника безопасности по безукоризненным рекламным кампаниям...
28 02 2025 15:44:28
Первая часть иллюстрированного руководства, в котором мы взяли 20 самых важных фактора ранжирования представлены с краткими иллюстрированными примерами. В этом тексте вы найдете первые 10. Узнать больше!...
27 02 2025 13:46:42
Аудит юзабилити способствует следованию современным тенденциям, пониманию целевого посетителя и увеличению конверсии....
26 02 2025 5:38:19
Личный опыт маркетинг-директора Serpstat. Внутренняя перелинковка, работа с контентом, настройка email-рассылок и построение качественного комьюнити помогли нам получить стабильный поток читателей и новых пользователей. Обо всем читайте дальше!...
25 02 2025 14:14:37
Джефф Безос, Стив Джобс, Билл Гeйтс, Джимм Керри и другие. Собрали для вас подборку крутых выступлений людей, которые знают, как добиться ... в общем-то, всего. Читайте их основные тезисы, а главное — послушайте....
24 02 2025 7:21:57
Относящиеся к низкочастотным long-tail запросы при правильном подходе могут стать эффективным инструментом для увеличения трафика. Рассказываем почему, а главное — как....
23 02 2025 19:59:11
Требования к интернет-магазину, мануал по регистрации, что может пойти не так...
22 02 2025 13:33:56
В статье рассказываем, какие бывают push-уведомления, когда их используют, даем чек-лист и пошаговую инструкцию по созданию успешной push-рассылки....
21 02 2025 4:28:54
Сотрудник не справляется? Значит с ним пора прощаться. Эмоции в сторону, действуем по алгоритму....
20 02 2025 10:11:25
Список инструментов email-маркетолога для рассылок по англоязычной аудитории....
19 02 2025 3:43:45
Киев, Одесса, Харьков, Днепр и другие города — в офис и обратно IT-специалисты добираются от 10 минут до более чем полутора часа. В дороге они слушают музыку, подкасты, читают книги. Узнать больше!...
18 02 2025 0:33:14
Не путайте с контент-менеджером, пожалуйста....
17 02 2025 13:23:59
Лучшие результаты в SEO дает заранее спланированное сотрудничество клиента с агентством на всех этапах работ с сайтом....
16 02 2025 2:36:28
Какие возможности дает Chrome DevTools для SEO-оптимизации...
15 02 2025 20:58:14
Доминирование маркетплейсов и агрегаторов в Яндексе усилилось. Первый магазин появляется не раньше 5 позиции. Поэтому компания Alto подготовила пошаговое руководство - как обойти агрегаторы в выдаче....
14 02 2025 23:41:37
Экспорт/импорт с помощью Excel-файла или таблиц Google позволит скопировать и перенести кампании, группы объявлений и объявления в Facebook вместе с креативами, текстами, ссылками и utm-метками...
13 02 2025 15:55:59
Как автоматизировать рутину в Google Таблицах с помощью Google Apps Script...
12 02 2025 23:53:41
Если на вашем смартфоне установлен только стандартный набор Uber, Glovo, 2ГИС и нескольких мессенджеров — смотрите подборку необычных и смешных приложений....
11 02 2025 12:41:14
«Случайный» посетитель потому, что может уйти (не сделав покупку) и не вернуться, не стать клиентом. Пуш-уведомления позволяют посетителю сразу стать подписчиком: ему предлагают подписаться на рассылку. Как это использовать? Читайте!...
10 02 2025 20:24:54
Бренды поделились инсайтами на ДиВи Конф — фишки от MEGOGO, Google, TikTok, Banda, McCann, I am IDEA, AIR Brands, Rocket и Фокстрот...
09 02 2025 9:55:11
Покажем, как продвигать сайты, продающие детскую обувь...
08 02 2025 3:58:48
При создании рекламы на украинском мы завоевываем большую долю рынка без повышения цены за клик....
07 02 2025 5:59:53
На третий месяц работы мы вышли на положительный ROMI, на четвертый — ROMI превысил 800%....
06 02 2025 15:59:59
Вам нужно приложение или мобильная версия сайта? Как вы собираетесь монетизировать приложение? И другие важные вопросы, на которые нужно ответить до разработки....
05 02 2025 19:13:57
Можно открыть корпоративную почту с использованием собственного сервера для принятия/отправки и с использованием стороннего сервиса от яндекс или гугл...
04 02 2025 16:56:26
Аналитик Алексей Селезнев описал простой алогритм прогнозирования поисковой активности пользователей в Яндексе....
03 02 2025 17:24:15
Не стучитесь к Алексею на ФБ с предложением что-то придумать для бренда. У Ломоносова целый тред таких непрочитанных сообщений. Узнать больше....
02 02 2025 19:34:48
Междугородние перевозки и их реклама. Кейс Павла Верлана...
01 02 2025 18:48:58
Увлекательные истории от специалиста по контекстной рекламе....
31 01 2025 9:46:48
Данные по 43 миллионам кликов в 27 тематиках и 391 городах страны...
30 01 2025 22:47:37
Крауд-маркетинг предполагает взаимодействие с целевой аудиторией с помощью рекомендательных комментариев на форумах, сайтах вопросов и ответов, в блогах, на других площадках...
29 01 2025 21:16:28
В Twitter удобно собрать список потенциальных клиентов, чтобы время от времени посматривать за их новостями...
28 01 2025 14:39:38
Новости для наших существующих и потенциальных клиентов....
27 01 2025 20:34:41
В ТОПе ошибок — метатеги, разметка, заголовки h1-h6 и внутренние ссылочные факторы....
26 01 2025 23:36:46
Есть восхитительная возможность продвинуть видео на YouTube с минимальными финансовыми потерями!...
25 01 2025 2:40:19
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::