Що таке регулярні вирази
Отримай нашу книгу «Контент-маркетинг у соціальних мережах: Як засісти в голову передплатників та закохати їх у свій бренд».
Регулярні вирази — інструмент порівняння деякого рядка із заданим шаблоном.
Більше відео на нашому каналі - вивчайте інтернет-маркетинг із SEMANTICA
Він застосовується, коли потрібно відсортувати великий обсяг текстової інформації за певними параметрами, знайти у рядку конкретний фрагмент — наприклад, при парсингу рядків, збиранні семантичного ядра сайту, налаштуванні фільтрів та цілей у системах аналітики.
Регулярки можна порівняти з абеткою Морзе. У ній літери алфавіту, цифри замінюються комбінаціями крапок та тире. Різниця в тому, що у випадку з абеткою набору точок та тире може відповідати лише один набір символів. Регулярні вирази показують, який вид може набувати рядок. Інакше кажучи, вони формують шаблон, якому має відповідати набір символів.
Що таке регулярні вирази простими словами
Регулярні вирази є своєрідним фільтром для текстових даних. Наприклад, потрібно знайти всі doc-файли на знімному носії. Вручну шукати довго та непродуктивно. Достатньо в пошуковому рядку ввести текст *.doc, і система відбере всі файли з будь-яким ім'ям формату .doc. На майбутнє, символ * означає послідовність будь-яких символів довільної довжини.
Механізм регулярних виразів було розроблено 1997 року творцями мови програмування З. Спочатку регулярки були реалізовані в бібліотеці PCRE мови Perl. Але механізм виявився настільки зручним і корисним, що згодом ця бібліотека стала використовуватись іншими мовами — Java, JavaScript, PHP, C++ і т.д. буд.
Спрощена бібліотека PCRE була введена в Google Analytics. Вона не вимагає великих обчислювальних потужностей, проста в освоєнні та використанні.
Де можуть використовуватися регулярні вирази
Вони можуть використовуватися скрізь, де потрібна фільтрація текстового типу даних. Часто вони використовуються при розробці парсерів рядків – синтаксичних аналізаторів.
Функціонал до роботи з регулярними висловлюваннями є у редакторі таблиць Excel, текстових редакторах. При оптимізації сайтів застосовується KeyCollector – програма для складання семантичного ядра. Якщо потрібно вибрати багато ключів певного шаблону, використовуються регулярні вирази.
Регулярки застосовуються у сфері інтернет-маркетингу. Аналітикам іноді потрібно налаштовувати вид звітів, фільтрувати їм текстові дані. Інструменти аналітики – Яндекс.Метрика та Google Analytics – дозволяють користуватися регулярними виразами:
- для налаштування цілей;
- для фільтрації текстової інформації у звітах, наприклад, про джерела трафіку;
- під час роботи з тегами в Google Tag Manager;
- для роботи з фільтрами уявлень - розподіл джерел трафіку на сегменти.
Як користуватися регулярними виразами
Регулярні висловлювання будуються за певними правилами. Символи можуть бути звичайними – літери, цифри, можуть бути спеціальними – метасимволами, які використовуються для завдання шаблону рядка.
Завжди можна обійтися виключно звичайними символами - просто перерахувати ті строкові вирази, які потрібні. Використання метасимволів дозволить спростити роботу з рядками, заощадити час та сили. Потрібно лише один раз зрозуміти, як працюють регулярні вирази.
Символ зірочка “ * ”
Цей символ використовується, коли потрібно вказати довільне число повторень попереднього символу.
Приклад: tr * ack - маска. Під неї підійде набір символів tack символу r немає; підійде track - одне входження символу; підійде trrrrrack - кілька входжень символу, що стоїть перед зірочкою.
Знак знак питання “ ? ”
Метасимвол, як і зірочка, вказує на майбутній символ. Знак питання вказує, що літера може або бути відсутнім, або бути присутнім у рядку.
Приклад: під маску tr?ack підходить два варіанти. tack – відсутність символу, track – одне входження.
Символ плюс “+”
Цей спецсимвол означає, що попередній символ може повторюватися необмежену кількість разів.
Приклад: під маску tr+ack підійдуть також track, trrack, trrrack і т.д. буд.
Символ крапка “ . “
Точкою позначається один довільний символ.
Приклад: до рядка tr.ack підійдуть набори tr1ack, trRack, tr7ack тощо. буд.
Символ кришка “ ^ ”
Цей метасимвол означає, що наступний за ним набір символів повинен знаходитись на початку рядка.
Приклад: шаблону ^track задовольнятиме рядки track, track10, але рядки виду 10track, rtrack.
Символ долар "$"
Метасимвол вказує на те, що попередні елементи повинні бути в кінці рядка.
Приклад: вираз track$ задовольнятиме наступні рядки: 5track, aaatrack, і не задовольнятиме track5, trackaaa.
Символи у квадратних дужках "[]"
Квадратні дужки містять набір символів, для яких допустимо лише одне входження в рядок одного символу.
Приклад: виразу track[10] буде відповідати рядки track1 чи track0. Рядки track10, track01 - ні.
Символи кришка у квадратних дужках “[^]”
Таке поєднання спеціальних символів вказує на те, що літер із квадратних дужок у рядку не повинно бути.
Приклад: регулярні [^0-8] відповідатиме рядок track, і не відповідатимуть рядки track08, track1 тощо. буд.
Символ дефіс "-"
Цей символ використовується для визначення діапазону. Наприклад, для вибору всіх великих літер латинського алфавіту можна скористатися дефісом, як було показано в попередньому прикладі. Треба пам'ятати, що в регулярних виразах ми маємо справу із символами. Рядок "76" розцінюється як символи "7" і "6". І якщо потрібно виключити, наприклад, діапазон двоцифрових чисел, потрібно виносити символ за дужки.
Приклад: для вибору діапазону чисел 23-29 регулярне вираз набуде вигляду “2[3-9]”.
приклад: це важливий приклад. При роботі з Google Analytics часто виникає необхідність виключення певних IP-адрес. Щоб виключити адреси з 192.168.0.10 по 192.168.0.25, потрібно скористатися маскою 192.168.0. (1 [0-9] | 2 [0-5]).
Символ прямий слеш “| ”
Вертикальний слеш означає логічну операцію АБО. Застосовується до групи символів, укладених у круглі дужки. Вибирається або вираз ліворуч від метасимволу, або праворуч.
Приклад: у попередньому прикладі ми вибирали діапазон чисел 10 - 25. Оскільки за дужки ми не можемо одночасно винести цифри 1 і 2, ми вчинили так - (1 [0-9] | 2 [0-5]).
Символи круглі дужки " ( ) "
Круглі дужки потрібні, коли групу елементів об'єднати в один символ.
Приклад: регулярному виразу track(10)+ відповідатиме рядок track1010, track101010. Ми об'єднали символи “1” та “0” в одну групу “10”, а “+” вказує, що ця група може повторюватися довільне число разів.
Символи фігурні дужки " < >"
У фігурних дужках визначається кількість повторень останнього символу. Можна вказати проміжок, наприклад, “” або необмежену кількість повторень – “”.
Приклад: масці (track) буде відповідати рядок "tracktrack", а виразу (track) - всі рядки tracktrack, tracktracktrack і т.д. буд.
Вираз “\d”
Для спрощення роботи можна скористатися конструкціями, які скорочують запис регулярних виразів.
Ця конструкція ставиться у відповідності до будь-якого символу і замінює рядок “[0-9]”.
Вираз “\D”
Це поєднання символів використовується, коли потрібно виключити усі цифри. Вона еквівалентна рядку "[^0-9]".
Вираз “\w”
Така конструкція замінює будь-яку букву алфавіту, цифру або знак нижнього підкреслення "_".
Вираз “\W”
Цьому поєднанню символів ставиться у відповідність всі символи, які не входять до попередньої групи, які не є літерами, цифрами або підкресленням “_”.
Вираз “\s”
Конструкція замінює будь-який символ пробілу. Прогалин може бути довільне число.
Вираз “\S”
Відповідає будь-якому символу, який не є пробельним.
Регулярні вирази та Google Analytics
Конструкцій, які застосовуються при складанні регулярних виразів, дуже багато. Ми привели ті, які часто потрібні під час роботи з системами аналітики.
Інструмент Google Analytiсs включає внутрішній інтерпретатор регулярних стосунків. Він спрощений, але функціонала достатньо під час роботи з сервісом.
Регулярними виразами можна користуватися при налаштуванні цілей.
Наприклад, якщо кінцева адреса містить параметр, що динамічно змінюється. Допустимо, у вас є інтернет магазин, і для кожного користувача формується унікальний ID замовлення. Щоб настроїти ціль, можна використовувати регулярний вираз.Динамічною частиною буде рядок виду ORD—XXXXXX, де XXXXXX — номер із цифр, що автоматично генерується.
Для адреси example.com/user/ordes/ORD-123456 регулярний вираз для мети матиме вигляд: ^example\.com\/user\/orders\/ORD-d.
- ^ - Починається з;
- \ - Екранування наступного символу;
- \d - Послідовність з 5 цифр.
Під час формування звітів можна фільтрувати джерела трафіку. Якщо вас цікавлять лише користувачі, які прийшли з видачі Яндекса чи Google, використовуйте конструкцію (yandex|google). Результатом будуть рядки, де є ці значення.
Використання регулярних значень спрощує та прискорює роботу зі звітами та налаштування систем аналітики. Навчитися користуватися регулярками легко – потрібно один раз зрозуміти принцип побудови конструкцій.
8 регулярних виразів, які ви повинні знати
Регулярні висловлювання – це власна мова. Коли ви вивчаєте нову мову програмування, вони - маленька субмова, на перший погляд, не має сенсу. Вам потрібно прочитати не один підручник, статтю чи книгу, щоб зрозуміти опис «простого» шаблону. Сьогодні ми розглянемо вісім регулярних виразів, які ви повинні знати для наступного проекту кодування.
Перш ніж почати, ви можете перевірити деякі з regex apps на Envato Market, таких як RegEx Extractor.
Ви можете отримувати електронні листи, проксі, IP-адреси, номери телефонів, адреси, HTML-теги, URL-адреси, посилання, дати тощо. буд. Просто вставте один або кілька регулярних виразів та джерел URL-адрес і запустіть процес.
Вилучення, очищення, аналіз, збір.
Приклади використання
- Вилучення листів із старої адресної книги CSV.
- Вилучення джерел зображення з файлів HTML.
- Вийняти проксі з веб-сайтів.
- Вилучення URL з результатів пошуку Google.
Довідкова інформація про Regular Expressions
Ось що Вікіпедія каже:
У програмуванні регулярні вирази надають стислий та гнучкий засіб для ідентифікації рядків тексту, таких як конкретні символи, слова або шаблони символів. Регулярні вирази (скорочено regex або regexp з множинними формами regexps або regexen) записуються офіційною мовою, яка може бути інтерпретована процесором регулярних виразів, програмою, яка або служить генератором parser, або аналізує текст та ідентифікує частини, які відповідають даній специфікації.
Це нічого не говорить мені про фактичні зразки. Регулярні висловлювання, які я обговорюватиму сьогодні, містять такі символи, як \w, \s, \1 і багато інших, які ні на що інше не схожі.
Якщо ви хочете трохи дізнатися про регулярні вирази, перш ніж читати цю статтю, я запропонував би подивитися серію Regular Expressions for Dummies.
Вісім регулярних висловів, які ми обговорюватимемо сьогодні, дозволять вам зіставити a(n): username, password, email, hex value (#fff або #000), slug, URL, IP address та HTML tag. Ближче до кінця списку регулярні вирази стають все більш заплутаними. Зображення для regex спочатку зрозумілі, але останні чотири легше зрозуміти, прочитавши пояснення.
Головне, що треба пам'ятати про регулярні висловлювання, - те, що вони майже однаково читаються вперед і назад. У цьому реченні більше сенсу, коли ми говоримо про збіг тегів HTML.
Примітка: Обмежувачами, які у регулярних висловлюваннях, є косі риси, «/». Кожен шаблон починається і закінчується роздільником. Якщо пряма коса риса з'являється в regex, ми маємо прибрати її зворотною косою: "/".