Регулярні вирази - круглі дужки (частина 6)

Регулярні вирази - круглі дужки (частина 6)

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

Що стосується інших видів дужок, то, зі статті Вивчаємо регулярні вирази самостійно - діапазони (частина 4). ми вже знаємо, що в квадратних дужках. пишеться діапазон, який може складатися з групи різних символів або з інтервалів. І цього діапазону може відповідати якийсь символ з рядка, якщо цей символ присутній у вибраної групи символів або входить в один із зазначених інтервалів.

А фігурні дужки використовуються для вказівки конкретного кількості повторень, від і до. З ними ми познайомилися в статті Вивчаємо регулярні вирази самостійно - квантіфікатори повторень (частина 3).

Круглі дужки мають роль групування. Їх ще називають групуються дужками. і використовуються вони в двох випадках.

Повторення групи символів

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

Наприклад, спочатку наш регулярний вираз виглядає таким чином:

Використовуючи круглі дужки і одного з квантіфікаторов повторень, ми скорочуємо довжину нашого регулярного виразу, до такого виду:

Тепер наше регулярний вираз стало коротше, наочніше і виглядає вона вже по-людськи.

Це у нас був перший випадок застосування круглих дужок.

Зручна обробка даних

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

Для кращого розуміння даного випадку, наведу приклад на мові PHP.

Для початку, поекспериментуємо з регулярним виразом без круглих дужок.

Функція preg_match (), повертає true (при виведенні відображається 1), якщо отриманий рядок відповідає зазначеному регулярному виразу і false (при виведенні відображається порожній рядок, тобто нічого), в іншому випадку.

Детальну інформацію про цю функцію Ви можете почитати в довіднику.

І так, запускаємо цей скрипт в браузері, і бачимо, що результат перевірки дорівнює true.

Тепер, в іншу зміну, запишемо це ж регулярний вираз, тільки вже з застосуванням круглих дужок.

Також перевіряємо отриману рядок на відповідність.

Оновлюємо сторінку в браузері, і бачимо, що, результат перевірки також дорівнює true.

Але, сенс застосування круглих дужок видно в іншому випадку. А саме коли ми додаємо знайдені відповідності в масив.

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

Для додавання знайдених відповідностей в масив, використовується функція preg_match_all ( 'регулярное_вираженіе'. 'Строка_для_проверкі'. $ Массів_соответствій).

Детальну інформацію про цю функцію Ви можете почитати в довіднику.

В результаті роботи цієї функції, ми отримуємо масив, який містить відповідності, знайдені в заданому рядку.

І так як регулярний вираз не містить группирующих дужок, то в масиві $ matches, потрапляє лише один збіг. А саме цілий рядок, яка вказана в другому параметрі, функції preg_match_all ().

Запускаємо скрипт в браузері і бачимо, що вміст масиву $ matches виглядає таким чином:

Вийшов двомірний масив, що складається з одного масиву, який має тільки один елемент.

Але, ми знаємо, що рядок може відповідати регулярному виразу не тільки цілком, але і частково. Тобто, цифри 373 це перше відповідність, цифри 69 це друге відповідність, 813 - третя відповідність і 501 - четвертий відповідність.

Так ось, ми використовуємо круглі дужки. саме для того щоб в масиві додавалися всі ці відповідності.

Тепер беремо регулярний вираз вже з дужками (вона у нас знаходиться в змінній $ reg1) і додаємо її в перший параметр функції preg_match_all ().

У другому параметрі також передаємо нашу рядок і в третьому вказуємо назву масиву, в якому будуть додаватися всі знайдені збіги.

Відкриваємо сторінку в браузері, і бачимо, що вміст масиву збігу виглядає вже по-іншому:

Також вийшов двомірний масив, але вже з усіма знайденими відповідниками в зазначеному рядку.

Змінюємо регулярний вираз:

Оновлюємо сторінку і бачимо, що вміст масиву змінилося:

Ну і на цьому все. Сподіваюся Ви зрозуміли для чого використовуються круглі дужки в регулярні вирази. Тепер Ви можете застосувати отримані знання на практиці.

  1. Для чого використовуються квадратні дужки? Напишіть приклад.
  2. Для чого використовуються фігурні дужки? Напишіть приклад.
  3. В яких випадках використовуються круглі дужки? Напишіть за прикладом для кожного випадку.