Що таке регулярні вирази та як ними користуватися
Що таке регулярні вирази?
Почнемо з того, що є комерційні, а є іміджеві цілі використання соцмереж. У першому випадку компанія за допомогою SMM готує користувача до здійснення покупки, у другому – формує сприйняття бренду, налагоджує зворотний зв’язок, що веде до покупки лише опосередковано у довгостроковій перспективі. Від мети SMM залежить, які показники слід оцінювати. Спочатку ми розглянемо загальні KPI, які є важливими для будь-яких цілей, а потім окремі показники для комерційної та іміджевої функцій SMM.
Простий приклад:
У нас є величезний список URL (текстові рядки), і в цьому списку нам швидко потрібно знайти URL-адреси, які відповідають якомусь складному шаблону, які руками потрібно буде фільтрувати і фільтрувати в кілька підходів. А за допомогою “регулярки” ми можемо описати цей шаблон і відфільтрувати всі URL-адреси за одну операцію.
І таких прикладів може бути дуже багато. Регулярні вирази можна застосовувати не тільки для пошуку URL, а взагалі для всіх текстових даних, до яких ви можете дотягнутися. Файли на комп’ютері, текстові редактори та таблиці, системи аналітики на кшталт Google Analytics та Яндекс Метрики, програма для збору семантичного ядра KeyCollector та інші популярні програми. А шаблони, за якими потрібно знайти дані, обмежуються тільки вашою уявою.
Регулярні вирази доступні і середньостатистичному користувачу ПК, а не тільки розумним програмістам. Так що не пропустіть шанс ознайомитися з RegExp ближче.
Регулярні вирази та Google Analytics
У цій статті ми ближче знайомитимемося з regular expressions саме в контексті аналізу трафіку в Google Analytics (GA). Так що подивимося, де і для чого в GA можна використовувати регулярні вирази.
- Для розширеного фільтра.
- Там є опція «пошук відповідного регулярного виразу».
- Для налаштування цілей.
- При створенні сегментів.
- Для налаштування фільтрів в представленнях.
- Для створення звітів у таблицях (за допомогою Google Analytics Spreadsheet Add-on) або Google Data Studio.
- При використанні API Analytics.
- Для налаштування тригерів у Google Tag Manager.
API (Application programming interface) — інтерфейс прикладного програмування, який забезпечує взаємодію кількох програм між собою. Наприклад, коли з однієї програми, ви можете отримати доступ до даних Google Analytics безпосередньо.
Синтаксис регулярних виразів
Символи в регулярних виразах поділяють на два види:
- Літерали (звичайні символи).
Складають більшу частину символів у регулярних виразах.
Представляють самі себе. - Метасимволи (спеціальні символи).
Вказують інші символи.
Звичайно можна використовувати тільки літерали, але набагато більше можливостей відкривається якщо використовувати комбінації літералів та метасимволів.
Метасимволи
Для подальшого опису, щоб точно уникнути плутанини, майте на увазі, що метасимвол буде вказаний у лапках. Тож якщо написано «.», то розуміємо це як один символ – крапку, а не три символи – лапку, крапку, лапку.
- «.» (Крапка)
Означає один символ.
Наприклад «А.» означає будь-яке поєднання великої літери А та одного будь-якого символу після літери А: А1, АП, Ас, А8, і так далі. - «*» (Зірочка)
Вказує на те, що символ, який стоїть перед зірочкою, може бути присутнім, відсутнім або навіть кілька разів поспіль повторюватися.
Приклад: регулярний вираз «20*» виловлюватиме значення: 2, 20, 200, 2000 і таке інше. Адже символ «0» відсутній у значенні «2», присутній у значенні «20», а також кілька разів поспіль повторюється у значеннях «200» і «2000». - «?» (Знак питання)
Вказує, що попередній символ може бути присутнім або відсутнім у рядку. Жодних повторень кілька разів поспіль — цим і відрізняється від «*».
Тобто регулярне вираження «20?» буде знаходити значення «2» і «20», так як 0 там або відсутній, або присутній. 200 та 2000 вже не відповідають правилу.
- «+» (Плюс)
Вказує на те, що попередній символ може бути присутнім і навіть повторюватися кілька разів поспіль.
За такою логікою, вираз 20+ знайде значення «20», «200», «2000» і так далі. Але значення «2» вже не пройде. - «^» (кришка, каре)
Використовується для пошуку рядків, які починаються із символів після ^.
Так регулярному виразу ^15 будуть відповідати рядки 15, 152369, 15Авіа і так далі - «$» (долар)
Антипод метасимволу ^. $ фільтруватиме рядки, які закінчуються на символи перед знаком долара.
Наприклад, 15 $ знайде рядки: 15, 235958915, вфкомфм15 і т.п. - «[]» (квадратні дужки)
Знаходять значення, які відповідають одному із символів у дужках.
Наприклад [01234] знайде рядки 0, 1. 2, 3 та 4.
А word[012] знайде word0, word1, word2. - «( )» (круглі дужки)
Круглі дужки використовують для угруповання символів. Дуже потрібен, коли доводиться складати складну конструкцію регулярного вираження.
Банальний приклад, згадуємо метасимвол «?». За умовчанням він вказує на входження або відсутність тільки одного попереднього символу, а якщо потрібно перевірити більше символів, то потрібно використовувати круглі дужки.
Дано рядки: 2, 20, 200
“20?” знайде: 2, 20, 200, 2000
“(20)?” знайде: 20, 200, 2000, не знайде 2
- «{}» (фігурні дужки)
Вказує, скільки разів у рядку повторюється попередній символ. Причому є кілька форм запису цієї конструкції.
Наприклад,
20 {4} – нуль повторюватися 4 рази = 20000
20 {4,6} – нуль може повторюватися від 4 до 6 разів = 20000, 200000, 2000000
20 {4,} – нуль може повторюватися від 4 разів = 20000, 200000, 2000000 і так далі. - «\» (Зворотний слеш, зворотна скісна риска)
Використовується для екранування метасимволу. Ставиться перед метасиволом, який потрібно екранувати.
Якщо вам потрібно, щоб крапка була лише крапкою, а не метасиволом, то перед нею потрібно поставити зворотний слеш.
Наприклад, потрібно відфільтрувати відвідування сторінок конкретного піддомену: subdomen.site.com
Якщо залишити все як є, то в результаті ви можете отримати комбінацію на кшталт: subdomenosite1com, так як метасимвол крапка вказує на будь-який символ.
Для чистого результату крапку необхідно екранувати: subdomen\.site\.com - «|» (прямий слеш)
Вертикальна риска задає відповідність АБО, коли в результаті фільтра вам потрібно знайти будь-яке із зазначених значень – одне АБО інше значення.
Регулярний вираз «2|35|341» знайде рядки, в яких є 2 або 35 або 341. - «–» (дефіс)
Використовується для завдання діапазону символів у квадратних дужках.
Наприклад, вам потрібно знайти всі значення від 0 до 9, то замість [0123456789], можна використовувати [0-9].
Але, якщо потрібно встановити діапазон від 23 до 29, то [23-29] просто не спрацює як слід, адже у регулярних виразах у цьому записі не два числа, а чотири цифри: 2, 3, 2, 9. Але, у цьому випадку, можна записати комбінацію 2[3-9].
Комбінації метасимволів
- «.*» (крапка та зірочка)
Найбільш ходова комбінація, тому що вказує на будь-яку послідовність символів. У місці використання цієї комбінації можуть повторюватися будь-які символи будь-яку кількість разів.
Наприклад, потрібно вказати всі сторінки у певному розділі сайту.
Потрібні всі статті блогу у розділі аналітика tripmydream.academy/blog/analytics/
Записуємо
tripmydream\.academy\/blog\/analytics\/.*
Екрануємо точку та слеши та вказуємо на будь-яку послідовність символів після категорії /analytics/ - «[^]» (кришка у квадратних дужках)
Вказує на список символів, які не повинні бути присутніми в тексті.
Наприклад, конструкція [^0-9] вибирає всі рядки, у яких немає цифр.
[^a-zA-Zа-яА-Я] – всі рядки, в яких немає букв латиниці та кирилиці.
Конструкції
- «\d»
Вказує на будь-який цифровий символ. Означає те саме, що і запис [0-9] - «\D»
Протилежно «\d» і еквівалентно запису [^0-9] – вказує на всі символи крім цифр. - «\w»
Вказує на будь-яку букву, цифру (будь-якого алфавітно-цифрового знака) або знак нижнього підкреслення «_». - «\W»
Протилежно «\w». Вказує на будь-який символ, крім літери, цифри або символу нижнього підкреслення «_». - «\s»
Означає будь-який символ пробілу. - «\S»
Протилежно «s», означає будь-який символ, крім пробілу.
Ми описали лише основні метасимволи, насправді їх набагато більше. Але для роботи з Google Аналітикою цього буде цілком достатньо.
Приклади використання регулярних виразів у Google Analytics
Для фільтрації сторінок
Це корисно, якщо потрібно виділити не конкретну сторінку або розділ, а групу URL, яка будується за якимось схожим принципом.
Наприклад, у нас на avia.tripmydream.com є сторінки напрямків: https://avia.tripmydream.com/routes
Але таких напрямків у нас 4 типи сторінок, які в URL відрізняються лише кількістю літер в slug. Якщо не використовувати регулярні вирази, ми можемо відстежити статистику тільки всієї категорії відразу або по кожній сторінці окремо. Але ж нам потрібна статистика для кожної групи!
- Перельоти з міста до міста,
https://avia.tripmydream.com/routes/iev-tbs
slug: iev-tbs = 3 літери – 3 літери.
regular expressions: avia\.tripmydream\.com\/routes\/…-…
Екрануємо необхідні знаки за допомогою метасимволу «\» і замість кінцевих літер підставляємо потрібну кількість символів за допомогою метасимволу «.» - Перельоти з міста в країну,
https://avia.tripmydream.com/routes/iev-me
slug: iev-me = 3 літери – 2 літери
regular expressions: avia\.tripmydream\.com\/routes\/…-..$
Робимо те саме, що й у попередньому варіанті, але вказуємо, що рядок закінчується двома символами і ніяк інакше. - Перельоти з країни до міста,
https://avia.tripmydream.com/routes/pl-hrk
slug: iev-me = 2 літери – 3 літери
regular expressions: avia\.tripmydream\.com\/routes\/..-…
Тут усе зрозуміло має бути. - Перельоти з країни до країни. https://avia.tripmydream.com/routes/pl-ua
slug: pl-ua = 2 літери – 2 літери
regular expressions: avia\.tripmydream\.com\/routes\/..-..$
А ось тут треба зазначити, що рядок закінчується двома символами після дефісу, інакше під цей вираз потрапить статистика від сторінок із країни до міста.
При налаштуванні цілей
Наприклад, для сторінки «Дякую за замовлення», URL якої має формат site.com/thankyoupage?order-id=XXXXX, на якій змінюється ідентифікатор заявки, тобто для кожного замовлення надається унікальний order id.
Можна налаштувати так: order-id=.*
Або так: \/thankyoupage\/order-id=\d
Або взагалі просто вказати значення order-id і ціль буде спрацьовувати щоразу, коли таке значення буде в адресному рядку
Для фільтрації трафіку відразу за декількома джерелами
Якщо потрібно відобразити дані щодо джерел трафіку google та facebook, можна використовувати оператор «|» (або).
google|facebook – відображаються дані лише за джерелами та каналами трафіку, в назвах яких є значення google або facebook
Сервіси для перевірки регулярних виразів
Якщо ви працюєте з Google Analytics, то немає нічого кращого, ніж перевірити вираз прямо там. Але також є спеціальні послуги для перевірки регулярних виразів:
https://regex101.com
https://regexr.com
https://www.regextester.com
RegExp Tester для браузера chrome
Шпаргалка регулярних виразів
- | — або,
- cp(c|m) — cpc або cpm,
- ^google— початок рядка з google (перед google нічого не має бути),
- $ — кінець рядка (після $ нічого не повинно бути),
- . (крапка) – будь-який символ,
(…… — будь-яке значення, що містить 6 символів),
(^……$ — значення строго із 6 символів), - \(екран)— ставиться ПЕРЕД символом, який потрібно екранувати,
- * (зірочка) — нескінченна кількість однакових символів поспіль (go*gle = gogle, google, gooogle, goooogle…),
- [a-z] — усі літери латинського алфавіту в маленькому регістрі,
[0-9]|1[0-9]|2[0-9] — від 0 до 29, - .* — будь-які значення.
Автор шпаргалки: Володимир Курій, Head of internet-marketing para.school.

