Світ коду - Nuygo

Підручники з програмного забезпечення => Php => Тема розпочата: Nuygo від Квт. 15, 2025, 01:12 PM

Назва: PHP Регулярні Вирази: Повний Посібник з Кодом та FAQ
Відправено: Nuygo від Квт. 15, 2025, 01:12 PM

Регулярні вирази (regex) у PHP є потужним інструментом для пошуку, перевірки та маніпуляції текстом. Вони дозволяють знаходити шаблони в рядках, перевіряти введені дані, замінювати текст тощо. У цій статті ми розглянемо основи використання регулярних виразів у PHP, надамо приклади коду та відповімо на найпоширеніші запитання.

Основи регулярних виразів у PHP
PHP підтримує регулярні вирази через функції preg_*, такі як preg_match(), preg_replace() та preg_split(). Регулярні вирази в PHP зазвичай використовують синтаксис Perl (PCRE — Perl Compatible Regular Expressions).
Основні елементи регулярних виразів:


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

Приклади коду
1. Перевірка правильності email-адреси
<?php
$email 
"[email protected]";
$pattern "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/";

if (
preg_match($pattern$email)) {
    echo 
"Email правильний!";
} else {
    echo 
"Неправильний email.";
}
?>

Пояснення шаблону:

2. Заміна всіх чисел у тексті
<?php
$text 
"Мені 25 років, а моєму другу 30.";
$pattern "/\d+/";
$result preg_replace($pattern"[ЧИСЛО]"$text);

echo 
$result// Виведе: Мені [ЧИСЛО] років, а моєму другу [ЧИСЛО].
?>

Пояснення:

3. Розбиття рядка на слова
<?php
$text 
"Це приклад тексту, з комами!";
$pattern "/[\s,]+/";
$words preg_split($pattern$text);

print_r($words);
/* Виведе:
Array
(
    [0] => Це
    [1] => приклад
    [2] => тексту
    [3] => з
    [4] => комами!
)
*/
?>

Пояснення:

4. Пошук усіх URL у тексті
<?php
$text 
"Відвідай https://example.com або http://test.org для деталей.";
$pattern "/https?:\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/";
preg_match_all($pattern$text$matches);

print_r($matches[0]);
/* Виведе:
Array
(
    [0] => https://example.com
    [1] => http://test.org
)
*/
?>

Пояснення:

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

FAQ: Поширені запитання про регулярні вирази в PHP
1. Що таке регулярні вирази?
Регулярні вирази — це шаблони для пошуку та маніпуляції текстом. Вони дозволяють знаходити, перевіряти або замінювати частини тексту за певними правилами.

2. Чому preg_match() повертає false?
Це може статися через неправильний синтаксис шаблону. Перевірте шаблон на помилки, використовуючи інструменти для тестування regex, і переконайтеся, що ви правильно екрануєте спеціальні символи.

3. Як зробити регулярний вираз нечутливим до регістру?
Додайте модифікатор i після шаблону, наприклад: /шаблон/i.

4. Як знайти кілька збігів у тексті?
Використовуйте preg_match_all() замість preg_match(), щоб отримати всі збіги.

5. Чи можна використовувати регулярні вирази для парсингу HTML?
Хоча це можливо, регулярні вирази не рекомендуються для парсингу HTML, оскільки він має складну структуру. Краще використовувати бібліотеки, такі як DOMDocument.

6. Як обробляти Unicode у регулярних виразах?
Додайте модифікатор u до шаблону, наприклад: /шаблон/u, щоб увімкнути підтримку UTF-8.

7. Чи є обмеження у регулярних виразах PHP?
Так, складні шаблони можуть бути повільними або споживати багато пам'яті. Завжди оптимізуйте шаблони та тестуйте їх на реальних даних.

Висновок
Регулярні вирази в PHP — це незамінний інструмент для роботи з текстом, який відкриває безліч можливостей для розробників. Від перевірки введених даних до складного аналізу тексту — regex може значно спростити задачі. Використовуйте приклади з цієї статті, експериментуйте та вдосконалюйте свої навички!