Функції для роботи з регулярними виразами в PHP

У минулій статті ми розібрали значення регулярних виразів . Ви тепер повинні знати, що таке формальний вираз і де воно використовуються. А в цій статті ми вже торкнемося регулярних виразів безпосередньо в конкретній мові програмування і розберемо всі необхідні функції для роботи з регулярними виразами в PHP.

Насамперед, давайте перерахую всі ті функції, що постійно використовується, коли потрібно працювати з регулярними виразами в PHP:

  • Функція preg_match (string pattern, string subject, array matches) - дана функція шукає збіги в рядку subject регулярному виразу pattern. Перше знайдене збіг поміщається в масив matches. Зверніть увагу, що ця функція шукає тільки перший збіг. Друге, третє і так далі вона не шукає! Масив matches буде таким:
    • Перший елемент містить всю збіглася частина рядка в цілому.
    • Другий елемент містить частину рядка, що збіглася з першим субпаттерном (що таке субпаттерни буде розібрано в одній з наступних статей).
    • Третій елемент містить частину рядка, що збіглася з другим субпаттерном.
    • І так далі.
    Також дуже важливо розуміти, що параметр matches не обов'язковий. Ще дуже важливий момент функції preg_match () - це її використання в простому пошуку на збіг, так як вона повертає або 0 (не було збігів), або 1 (був збіг). Зважаючи на це, дана функція дуже активно використовується в конструкціях IF.
  • Функція preg_match_all (string pattern, string subject, array matches) - повний аналог функції preg_match (), але тут пошук збігів триває і після першого знайденого. Тобто якщо функція preg_match () зупиняє свою роботу після першого знайденого збіги, то функція preg_match_all () йде далі. Повертає ця функція - кількість збігів (зрозуміло, їх може бути більше 1-го).
  • Функція preg_replace (mixed pattern, mixed replacement, mixed subject, int limit). Дуже корисна функція, яка в рядку subject замінює рядки, відповідні pattern, на replacement. Кількість замін задається параметром limit. Якщо даний параметр не вказано (а він є необов'язковим), то буде проведена заміна всіх запропонованих варіантів.

Тепер же давайте приведу простий приклад використання будь-якої з цієї функції, щоб Ви подивилися все на практиці:

<? Php
// Створюємо рядок з e-mail
$ Str = "Ось мій e-mail: [email protected], пишіть ...";
// Перевіряємо рядок на наявність e-mail за допомогою регулярних виразів і потім виводимо відповідний результат
if (preg_match ( "/ [a-z0-9 _-] + (\. [a-z0-9 _-] +) * @ ([0-9a-z] [0-9a-z -] * [0- 9a-z] \.) + ([az] {2,4}) / i ", $ str)) echo" E-mail знайдений ";
else echo "E-mail не найден";
?>

В результаті, як Ви і здогадалися з'явиться рядок: "E-mail знайдений". В даному прикладі написано регулярний вираз, яке Ви поки розуміти не повинні. Вже починаючи з наступного статті, ми з Вами будемо вчитися складати регулярні вирази, а поки просто прийміть як належне: регулярний вираз в прикладі шукає e-mail в заданому рядку.

Функцій для роботи з регулярними виразами в PHP дещо більше, але ось цей список - це найважливіші та найголовніші. Їх треба обов'язково знати і вміти застосовувати! Особисто я ці функції застосовував таку кількість разів, що не злічити. І заздалегідь можу сказати, що якщо постане питання про застосування регулярних виразів в PHP, то Ви цими функціями і будете користуватися.

Додавайтеся до мене в друзі ВКонтакте: http://vk.com/myrusakov .
Якщо Ви хочете дати оцінку мені і моїй роботі, то напишіть її в моїй групі: http://vk.com/rusakovmy .

Якщо Ви не хочете пропустити нові матеріали на сайті,
то Ви можете підписатися на оновлення: Підписатися на оновлення

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

Запропонуйте цю статтю друзям:

Якщо Вам сподобався сайт, то розмістіть посилання на нього (у себе на сайті, на форумі, в контакті):

  1. кнопка:

    Вона виглядає ось так: Вона виглядає ось так:

  2. Текстова посилання:

    Вона виглядає ось так: Як створити свій сайт

  3. BB-код посилання для форумів (наприклад, можете поставити її в підписі):