НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ

PHP Підручник

PHP СТАРТ PHP Інтро PHP Встановлення PHP Синтаксис PHP Коментарі PHP Змінні PHP Echo / Print PHP Типи даних PHP Рядки PHP Числа PHP Математика PHP Константи PHP Оператори PHP If...Else...Elseif PHP Switch PHP Цикли PHP Функції PHP Масиви PHP Суперглобали PHP RegEx

PHP Форми

PHP Обробка форми PHP Перевірка форми PHP Обов'язкові поля форми PHP Форма URL/E-mail PHP Заповнення форми

PHP Розширений

PHP Дата і час PHP Підключення файлів PHP Обробка файлів PHP Файл відкрити/читати PHP Файл створити/записати PHP Файл Завантажити PHP Кукі PHP Сесії PHP Фільтри PHP Розширені фільтри PHP Callback функції PHP JSON PHP Винятки

PHP ООП

PHP Що таке ООП PHP класи/об'єкти PHP Конструктор PHP Деструктор PHP Модифікатори доступу PHP Спадкування PHP Константи PHP Абстрактні класи PHP Інтерфейси PHP Трейти PHP Статичні методи PHP Статичні властивості PHP Простори імен PHP Ітерабелі

MySQL База даних

MySQL База даних MySQL Підключення MySQL Створити БД MySQL Створити таблиці MySQL Вставити дані MySQL Отримати останній ID MySQL Вставити кілька записів MySQL Підготовлені інструкції MySQL Вибрати дані MySQL Where MySQL Order By MySQL Видалення даних MySQL Оновлення даних MySQL Обмеження даних

PHP XML

PHP XML Парсери PHP SimpleXML Парсер PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX Інтро AJAX PHP AJAX База даних AJAX XML AJAX Живий пошук AJAX Опитування

PHP Приклади

PHP Приклади PHP Компілятор PHP Вікторина PHP Вправи PHP Сертифікат

PHP Довідник

PHP Огляд PHP Масив PHP Календар PHP Дата PHP Каталог PHP Помилка PHP Виняток PHP Файлова система PHP Фільтр PHP FTP PHP JSON PHP Ключові слова PHP Libxml PHP Пошта PHP Математика PHP Різне PHP MySQLi PHP Мережа PHP Output Control PHP RegEx PHP SimpleXML PHP Потік PHP Рядок PHP Обробка змінних PHP XML Парсер PHP Zip PHP Часові пояси

PHP. W3Schools українською. Уроки для початківців

En

PHP Регулярні вирази


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

Регулярний вираз — це послідовність символів, яка формує шаблон пошуку. Коли ви шукаєте дані в тексті, ви можете використовувати цей шаблон пошуку, щоб описати те, що ви шукаєте.

Регулярний вираз може бути одним символом або більш складним шаблоном.

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


Синтаксис

В PHP регулярні вирази — це рядки, що складаються з роздільників, шаблону та додаткових модифікаторів.

$exp = "/w3schools/i";

У наведеному вище прикладі / є роздільником, w3schools є шаблоном, яким виконується пошук, а i є модифікатором, який робить пошук нечутливим до регістру.

Роздільником може бути будь-який символ, який не є літерою, цифрою, зворотною скісною рискою чи пробілом. Найпоширенішим роздільником є коса риска (/), але якщо ваш шаблон містить косу риску, зручно вибрати інші роздільники, наприклад # або ~.


Функції регулярних виразів

PHP надає різноманітні функції, які дозволяють використовувати регулярні вирази. Функції preg_match(), preg_match_all() і preg_replace() є одними з найпоширеніших:

Функція Опис
preg_match() Повертає 1, якщо шаблон знайдено в рядку, і 0, якщо ні
preg_match_all() Повертає кількість разів, коли шаблон було знайдено в рядку, яке також може бути 0
preg_replace() Повертає новий рядок, де відповідні шаблони було замінено іншим рядком

Використання preg_match()

Функція preg_match() повідомить вам, чи містить рядок збіги шаблону.

Приклад

Використовуйте регулярний вираз для пошуку "w3schools" у рядку без урахування регістру:

<?php
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo preg_match($pattern, $str); // Виведе 1
?>
Спробуйте самі »

Використання preg_match_all()

Функція preg_match_all() повідомить вам, скільки збігів було знайдено для шаблону в рядку.

Приклад

Використовуйте регулярний вираз для підрахунку кількості входжень "ain" у рядку без урахування регістру:

<?php
$str = "The rain in SPAIN falls mainly on the plains.";
$pattern = "/ain/i";
echo preg_match_all($pattern, $str); // Виведе 4
?>
Спробуйте самі »

Використання preg_replace()

Функція preg_replace() замінить усі збіги шаблону в рядку іншим рядком.

Приклад

Використовуйте регулярний вираз без урахування регістру, щоб замінити Microsoft на W3Schools у рядку:

<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str); // Виведе "Visit W3Schools!"
?>
Спробуйте самі »

Модифікатори регулярних виразів

Модифікатори можуть змінювати спосіб виконання пошуку.

Модифікатор Опис
i Виконує пошук без урахування регістру
m Виконує багаторядковий пошук (шаблони, які шукають початок або кінець рядка, відповідатимуть початку чи кінцю кожного рядка)
u Вмикає правильну відповідність шаблонів у кодуванні UTF-8

Шаблони регулярних виразів

Дужки використовуються для пошуку діапазону символів:

Вираз Опис
[abc] Знайдіть один символ із варіантів у дужках
[^abc] Знайдіть будь-який символ НЕ в дужках
[0-9] Знайдіть один символ із діапазону від 0 до 9

Метасимволи

Метасимволи – це символи зі спеціальним значенням:

Метасимвол Опис
| Знайдіть збіг для будь-якого шаблону, розділеного | а саме: cat|dog|fish
. Знайдіть лише один екземпляр будь-якого символу
^ Знаходить відповідність на початку рядка, як в: ^Hello
$ Знаходить відповідність у кінці рядка, як в: World$
\d Знайдіть цифру
\s Знайдіть пробіл
\b Знайдіть збіг на початку такого слова: \bWORD або в кінці такого слова: WORD\b
\uxxxx Знайдіть символ Unicode, заданий шістнадцятковим числом xxxx

Квантори

Квантори визначають кількість:

Квантор Опис
n+ Відповідає будь-якому рядку, який містить принаймні одну n
n* Відповідає будь-якому рядку, який містить нуль або більше випадків n
n? Збігається з будь-яким рядком, який містить нуль або один раз n
n{x} Відповідає будь-якому рядку, який містить послідовність X n's
n{x,y} Збігається з будь-яким рядком, який містить послідовність від X до Y n's
n{x,} Збігається з будь-яким рядком, який містить послідовність принаймні X n's

Примітка. Якщо ваш вираз потребує пошуку одного зі спеціальних символів, ви можете використовувати зворотну скісну риску ( \ ), щоб екранувати їх. Наприклад, для пошуку одного або кількох знаків питання можна використати такий вираз: $pattern = '/\?+/';


Групування

Ви можете використовувати круглі дужки ( ), щоб застосувати квантифікатори до цілих шаблонів. Їх також можна використовувати для вибору частин візерунка, які будуть використовуватися як збіг.

Приклад

Використовуйте групування для пошуку слова "banana", шукаючи ba, а потім два випадки na:

<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str); // Outputs 1
?>
Спробуйте самі »

Повний довідник RegExp

Щоб отримати повну довідку, перейдіть до Повного довідника з регулярних виразів PHP на нашому сайті W3Schools українською.

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