Онлайн-проверка регулярных выражений PHP (PCRE): введите шаблон, текст и посмотрите, что найдут preg_match, preg_match_all или что получится после preg_replace. Удобно для отладки шаблонов до того, как они попадут в код.
Разделители
В PHP шаблон пишется между разделителями: обычно /…/, но можно #…#, ~…~, {…}. После закрывающего разделителя ставятся модификаторы. Если в шаблоне много слешей (пути, URL), удобнее другой разделитель: #^/catalog/(\d+)/$# вместо экранирования каждого /.
Модификаторы
| Модификатор | Что делает | Пример |
|---|---|---|
| i | без учёта регистра | /abc/i найдёт «ABC» |
| m | многострочный: ^ и $ — начало и конец каждой строки | /^\d+$/m |
| s | точка совпадает и с переводом строки | /<p>.*<\/p>/s |
| x | игнорировать пробелы и комментарии # в шаблоне | / \d{3} # код /x |
| u | шаблон и текст в UTF-8 (обязателен для кириллицы) | /[а-яё]+/iu |
Модификатор e (выполнение кода в замене) удалён из PHP 7 и на этой странице отбрасывается из соображений безопасности — используйте preg_replace_callback().
Частые шаблоны
| Задача | Шаблон |
|---|---|
| Только цифры | /^\d+$/ |
| Все числа в тексте | /\d+/ |
| Похоже на email | /^[^@\s]+@[^@\s]+\.[a-z]{2,}$/i |
| Телефон РФ +7XXXXXXXXXX | /^\+7\d{10}$/ |
| Дата ДД.ММ.ГГГГ | /^(\d{2})\.(\d{2})\.(\d{4})$/ |
| Лишние пробелы | /\s+/ |
Например, preg_match_all('/\d+/', 'a1b22c333') найдёт три совпадения: 1, 22, 333, а preg_replace('/\s+/', ' ', $s) схлопнет любые пробелы и переводы строк в один пробел.
preg_match, preg_match_all, preg_replace
- preg_match — ищет первое совпадение и возвращает 1 или 0; группы попадают в массив $matches. Подходит для проверки формата (валидации).
- preg_match_all — находит все совпадения и возвращает их количество. Подходит для извлечения данных: всех ссылок, чисел, email.
- preg_replace — заменяет совпадения; в строке замены группы доступны как
$1или\1:preg_replace('/(\d{2})\.(\d{2})\.(\d{4})/', '$3-$2-$1', '06.10.2026')→2026-10-06.
Кодировка: cp1251 и utf-8
PCRE работает с байтами. В UTF-8 русская буква занимает 2 байта, поэтому без модификатора /u классы вроде [а-я], точка и \w ведут себя неправильно и могут «разрезать» букву пополам. Правило: для текста в UTF-8 всегда добавляйте u. В cp1251 одна буква — один байт, и шаблоны работают без u, но символы вне cp1251 (эмодзи, ё в некоторых раскладках, иероглифы) в ней не представимы. Выберите на странице ту же кодировку, что и в вашем проекте.
Как пользоваться страницей
- Выберите функцию (preg_match_all, preg_match или preg_replace) и кодировку.
- Введите регулярное выражение с разделителями и модификаторами, при необходимости — строку замены.
- Вставьте текст и нажмите «Выполнить»: появятся совпадения, группы или результат замены.