Учебник по PHP

PHP ГЛАВНАЯ Введение в PHP Установка PHP Синтаксис PHP Комментарии PHP PHP-переменные PHP-эхо/печать Типы данных PHP PHP-строки PHP-номера PHP-математика PHP-константы PHP-операторы PHP Если... Иначе... Иначе PHP-переключатель PHP-циклы PHP-функции PHP-массивы PHP-суперглобальные переменные PHP регулярное выражение

PHP- формы

Обработка форм PHP Проверка формы PHP Требуется PHP-форма URL-адрес формы PHP/электронная почта PHP-форма завершена

PHP продвинутый

Дата и время PHP PHP включает Обработка файлов PHP Открытие/чтение файла PHP Создание/запись файла PHP Загрузка файла PHP PHP-куки PHP-сессии PHP-фильтры Расширенные фильтры PHP Функции обратного вызова PHP 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 Получить последний идентификатор MySQL Вставить несколько MySQL подготовлен Выбор данных MySQL MySQL Где Порядок MySQL MySQL Удалить данные Данные обновления MySQL Предельные данные MySQL

PHP XML

XML-парсеры PHP Парсер PHP SimpleXML PHP SimpleXML — Получить PHP XML Expat PHP XML DOM

PHP — АЯКС

Введение в АЯКС АЯКС PHP База данных AJAX АЯКС XML AJAX-поиск в реальном времени АЯКС-опрос

Примеры PHP

Примеры PHP PHP-компилятор PHP-викторина PHP-упражнения PHP-сертификат

Справочник по PHP

Обзор PHP PHP-массив Календарь PHP Дата PHP PHP-каталог Ошибка PHP PHP-исключение Файловая система PHP PHP-фильтр PHP FTP PHP JSON Ключевые слова PHP PHP-библиотека XML PHP-почта PHP-математика PHP Разное PHP MySQLi PHP-сеть Управление выводом PHP PHP регулярное выражение PHP SimpleXML PHP-поток PHP-строка Обработка переменных PHP XML-парсер PHP PHP-архив Часовые пояса PHP

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


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

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

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

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


Синтаксис

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

$exp = "/w3schools/i";

В приведенном выше примере /это разделитель , w3schools — это искомый шаблон , а iэто модификатор , делающий поиск нечувствительным к регистру.

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


Функции регулярных выражений

PHP предоставляет множество функций, позволяющих использовать регулярные выражения. Функции preg_match()и preg_match_all()являются preg_replace()одними из наиболее часто используемых:

Function Description
preg_match() Returns 1 if the pattern was found in the string and 0 if not
preg_match_all() Returns the number of times the pattern was found in the string, which may also be 0
preg_replace() Returns a new string where matched patterns have been replaced with another string

Использование preg_match()

Функция preg_match()сообщит вам, содержит ли строка совпадения с шаблоном.

Пример

Используйте регулярное выражение для поиска «w3schools» в строке без учета регистра:

<?php
$str = "Visit W3Schools";
$pattern = "/w3schools/i";
echo preg_match($pattern, $str); // Outputs 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); // Outputs 4
?>

Использование preg_replace()

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

Пример

Используйте регулярное выражение без учета регистра, чтобы заменить Microsoft на W3Schools в строке:

<?php
$str = "Visit Microsoft!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "W3Schools", $str); // Outputs "Visit W3Schools!"
?>


Модификаторы регулярных выражений

Модификаторы могут изменить способ выполнения поиска.

Modifier Description
i Performs a case-insensitive search
m Performs a multiline search (patterns that search for the beginning or end of a string will match the beginning or end of each line)
u Enables correct matching of UTF-8 encoded patterns

Шаблоны регулярных выражений

Скобки используются для поиска диапазона символов:

Expression Description
[abc] Find one character from the options between the brackets
[^abc] Find any character NOT between the brackets
[0-9] Find one character from the range 0 to 9

Метасимволы

Метасимволы — это символы со специальным значением:

Metacharacter Description
| Find a match for any one of the patterns separated by | as in: cat|dog|fish
. Find just one instance of any character
^ Finds a match as the beginning of a string as in: ^Hello
$ Finds a match at the end of the string as in: World$
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

квантификаторы

Квантификаторы определяют количества:

Quantifier Description
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n
n{x} Matches any string that contains a sequence of X n's
n{x,y} Matches any string that contains a sequence of X to Y n's
n{x,} Matches any string that contains a sequence of at least X n's

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


Группировка

Вы можете использовать круглые скобки ( )для применения квантификаторов ко всем шаблонам. Их также можно использовать для выбора частей шаблона, которые будут использоваться в качестве соответствия.

Пример

Используйте группировку для поиска слова «банан», ища ba , за которым следуют два экземпляра na :

<?php
$str = "Apples and bananas.";
$pattern = "/ba(na){2}/i";
echo preg_match($pattern, $str); // Outputs 1
?>

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

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

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