BL2.ru

Проверка регулярных выражений (регулярные выражения онлайн)

Онлайн-проверка регулярных выражений 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) и кодировку.
  • Введите регулярное выражение с разделителями и модификаторами, при необходимости — строку замены.
  • Вставьте текст и нажмите «Выполнить»: появятся совпадения, группы или результат замены.