Get In Touch
admin@victoriaweb.me
Back

Регулярні вирази для початківців: як я навчилася писати власні regex

Розуміння і навички написання regex є необовязковими проте дуже корисні в деяких випадках. Після цієї статті ви зможете впевнено писати власні регулярні вирази та застосовувати їх у своїх проектах.

Що таке регулярні вирази?

Регулярні вирази — це спеціальний синтаксис, який використовується для опису пошукових шаблонів у тексті. Вони дозволяють швидко знаходити, перевіряти та замінювати потрібні фрагменти тексту. Наприклад, за допомогою regex я можу знайти всі email-адреси в документі або виділити слова, що починаються з великої літери, в програмуванні на JavaScript та на інших мовах, вирази також широко використовуюються.

Основні концепції та синтаксис

Основні елементи синтаксису регулярних виразів, які використовуються найчастіше.

Символьні класи

Символьні класи дозволяють мені визначити набір символів, які підходять під певний критерій.

  • . — відповідає будь-якому символу, крім символу нового рядка.
  • \dцифра (0-9).
  • \Dне цифра.
  • \wсловесний символ (латинські літери, цифри, підкреслення).
  • \Wне словесний символ.
  • \sпробільний символ (пробіл, табуляція, новий рядок).
  • \Sне пробільний символ.

Приклад :

  • [abc] — шукаєм будь-який символ a, b або c.
  • [a-z] — будь-яка мала літера від a до z.
  • [A-Z] — будь-яка велика літера від A до Z.
  • [0-9] — будь-яка цифра від 0 до 9.

Порада

Якщо працюєте у Visual Studio, переконайтеся, що в діалоговому вікні “Швидка заміна” вибрано кнопку “Використовувати регулярні вирази” (або натиснуто Alt+E).

Квантифікатори

Квантифікатори допомагають визначити кількість повторень елемента.

  • * — 0 або більше повторень.
  • + — 1 або більше повторень.
  • ? — 0 або 1 повторення.
  • {n} — рівно n повторень.
  • {n,}n або більше повторень.
  • {n,m} — від n до m повторень.

Приклад:

  • a{3} — шукаєм aaa.
  • a{1,3} — шукаєм a, aa або aaa.
  • \d+ — одна або більше цифр.

Якорі

Якорі використовуються для визначення позицій у рядку, що є дуже корисним у багатьох задачах.

  • ^ — початок рядка.
  • $ — кінець рядка.
  • \b — межа слова.
  • \B — не межа слова.

Приклад:

  • ^Hello — знаходжу рядки, що починаються з Hello.
  • world$ — знаходжу рядки, що закінчуються на world.
  • \bcat\b — слово cat як окреме слово.

Порада

Якщо працюєте у Visual Studio, у діалоговому вікні “Швидка заміна” обов’язково виберіть кнопку “Використовувати регулярні вирази” або натисніть Alt+E.

Групування та альтернативи

  • () — групування виразів.
  • | — оператор “або”.

Приклад:

  • (cat|dog) — шукаєм cat або dog.
  • colou?r — знаходжу color або colour.

Практичні приклади

Хочу поділитися кількома прикладами, які часто зустрічаються в моїй роботі.

  1. Перевірка email-адреси: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  2. Пошук номерів телефону у форматі 123-456-7890: \d{3}-\d{3}-\d{4}
  3. Витяг всіх URL з тексту: https?://[^\s]+
  4. Заміна множинних пробілів на один: \s+

Поради для ефективного використання

За час роботи з регулярними виразами я напрацювала кілька порад, які можуть бути корисними для вас.

  • Використовуйте онлайн-інструменти: Я часто користуюся regex101.com для тестування та відлагодження своїх регулярних виразів у режимі реального часу.
  • Читайте документацію: Різні мови програмування можуть мати свої особливості реалізації regex, тому завжди перевіряйте специфіку.
  • Практикуйтеся: Найкращий спосіб навчитися — вирішувати реальні задачі. Я починала з простих завдань і поступово переходила до складніших.
  • Коментуйте складні вирази: Якщо регулярний вираз стає занадто складним, додавайте коментарі або використовуйте розширений синтаксис з поясненнями.

Порада

В операційних системах Windows більшість рядків закінчуються на “\r\n” (повернення каретки, за яким слідує новий рядок). Ці символи невидимі, але присутні в редакторі та передаються службі регулярних виразів .NET. Коли ви працюєте з файлами з веб-сайтів або з операційної системи, відмінної від Windows, обов’язково враховуйте можливість того, що вони використовують лише символ нового рядка для розриву рядка.

Висновок

Регулярні вирази стали для мене незамінним інструментом у роботі з текстом. Опанувавши базовий синтаксис та концепції, ви зможете ефективно вирішувати задачі пошуку, заміни та валідації текстових даних. Не бійтеся експериментувати та використовувати доступні ресурси для вдосконалення своїх навичок.

Victoriia Hladka
Victoriia Hladka
https://victoriaweb.me