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.

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

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

  • * — 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 як окреме слово.

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

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

Приклад:

  • (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, тому завжди перевіряйте специфіку.
  • Практикуйтеся: Найкращий спосіб навчитися — вирішувати реальні задачі. Я починала з простих завдань і поступово переходила до складніших.
  • Коментуйте складні вирази: Якщо регулярний вираз стає занадто складним, додавайте коментарі або використовуйте розширений синтаксис з поясненнями.

Висновок

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

Victoriia Hladka
Victoriia Hladka
https://victoriaweb.me