ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ

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. Уроки для начинающих

PHP Регулярные выражения


Что такое Регулярные выражения?

Регулярное выражение - это последовательность символов, образующая шаблон поиска. Когда вы ищете данные в тексте, вы можете использовать этот шаблон поиска, чтобы описать то, что вы ищете.

Регулярное выражение может быть одиночным символом или более сложным шаблоном.

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


Синтаксис Регулярных выражений в 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 Находит символ Юникода, указанный шестнадцатеричным числом 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); // выведет 1
?>
Попробуйте сами »

Полный справочник регулярных выражений

Для получение более полной информации посетите Полный справочник регулярных выражений PHP на нашем сайте W3Schools на русском.

Справочник содержит описания и примеры всех функций регулярных выражений.