Инструменты InterLAB · Подсветка · группы · замена · код для 5 языков

Тестер регулярных выражений

Пишите выражение — совпадения и группы подсвечиваются в тексте сразу. Рядом — разбор по частям, замена, тест-кейсы и код для пяти языков. Проверка идёт в фоновом потоке, поэтому даже «взрывное» выражение не повесит страницу.

Бесплатно, без регистрации

ECMAScript RegExp · выполняется в браузере

Без ограничивающих слешей. Наведите на строку разбора — часть выражения подсветится.

Выражение, кейсы и текст до 200 КБ сохраняются только в этом браузере.

Как работает тестер

  1. Подсветка в тексте

    Выражение выполняется движком вашего браузера (ECMAScript RegExp) — ровно так, как его выполнит JavaScript в продукте. Совпадения подсвечиваются прямо в поле с текстом, группы подчёркиваются своим цветом; текст при этом можно править.

  2. Группы и позиции

    Для каждого совпадения — позиции начала и конца, номера и имена групп, их значения и позиции (как с флагом d). Без флага g ищется только первое совпадение — как у exec.

  3. Замена, разбиение, тест-кейсы

    Замена следует правилам GetSubstitution: $1, $<имя>, $&, $`, $', $$ — видно и общий результат, и замену каждого совпадения. Тест-кейсы проверяют строки, которые должны и не должны совпадать.

  4. Разбор и код

    Выражение разбирается на части с объяснением каждой: якоря, классы, квантификаторы (жадные и ленивые), группы, просмотр вперёд и назад, обратные ссылки, свойства Unicode. Код — для JavaScript, Python, Go, PHP, Java с переводом флагов и синтаксиса.

Стандарты и правила

Синтаксис и поведение — ECMAScript (ECMA-262) в версии вашего браузера: флаг v (ES2024) и группы-модификаторы (?i:…) (ES2025) работают там, где их поддерживает браузер. Код для других языков учитывает их отличия: Python re, Go regexp (RE2), PHP PCRE, Java java.util.regex.

g

Свойство
global
Что делает
все совпадения, а не только первое

i

Свойство
ignoreCase
Что делает
без учёта регистра

m

Свойство
multiline
Что делает
^ и $ — начало и конец каждой строки текста

s

Свойство
dotAll
Что делает
точка совпадает и с переводом строки

u

Свойство
unicode
Что делает
Unicode: \p{…}, \u{…}, эмодзи — один символ, строгий синтаксис

v

Свойство
unicodeSets
Что делает
как u, плюс вложенные классы и операции -- и && (ES2024)

y

Свойство
sticky
Что делает
совпадение только с позиции lastIndex, без поиска дальше

d

Свойство
hasIndices
Что делает
позиции начала и конца каждой группы (match.indices)
Флаги ECMAScript

R1 · Вложенные квантификаторы — риск зависания

Пример
(a+)+ (\w+\s?)*
Что не так
Внутренний повтор может закончить итерацию там же, где начинается следующая итерация внешнего: строку можно разрезать экспоненциально многими способами. На тексте без совпадения движок перебирает их все. Уберите вложенность (a+ вместо (a+)+) или сделайте границу итераций обязательной.

R2 · Пересекающиеся альтернативы под повтором — риск зависания

Пример
(a|a)* (\w|\d)+
Что не так
Две альтернативы совпадают с одним и тем же символом, и группа повторяется: каждый символ можно отнести к любой из них, вариантов — 2^n. Объедините альтернативы в один класс ([\w] вместо (\w|\d)) или сделайте их взаимоисключающими.

R3 · Соседние повторы по одним символам — медленно на длинном тексте

Пример
\d+\d+ .*.*
Что не так
Два неограниченных повтора подряд делят между собой одни и те же символы: при неудаче движок пробует все границы между ними (полиномиальный рост, n² и больше). Оставьте один повтор или поставьте между ними обязательный разделитель.
Правила поиска опасных форм

Эвристики ищут классические формы и не доказывают безопасность: защиту даёт выполнение с таймаутом. Для серверного кода с пользовательским вводом выбирайте движки с линейным временем (RE2) или ограничивайте длину входа.

Email (практичный)

Что не проверяет
Ловит опечатки, а не проверяет существование адреса. RFC 5322 допускает больше (кавычки, IP в скобках), кириллические домены нужно сначала перевести в punycode. Надёжная проверка — письмо с подтверждением.

URL http(s)

Что не проверяет
Только http и https с доменом (не localhost и не IP). Для разбора частей адреса в коде надёжнее new URL().

IPv4

Что не проверяет
Четыре числа 0–255 без ведущих нулей. Маску (/24) и порт не принимает.

IPv6

Что не проверяет
Полная и сокращённая (::) запись. Не принимает зону (%eth0) и встроенный IPv4 (::ffff:1.2.3.4).

UUID (RFC 9562)

Что не проверяет
Версии 1–8 и вариант RFC 9562. Nil и Max UUID (нули и f) не проходят — добавьте их отдельно, если нужны.

Дата ISO 8601 (ГГГГ-ММ-ДД)

Что не проверяет
Проверяет формат, а не календарь: 2026-02-31 пройдёт. Существование даты проверяйте в коде.

Дата и время ISO 8601

Что не проверяет
Профиль RFC 3339: обязательный часовой пояс (Z или ±ЧЧ:ММ). Секунда координации 60 не принимается.

Телефон KZ/RU (+7)

Что не проверяет
Формат +7/8 и 10 цифр с пробелами, скобками и дефисами. Не проверяет, что код оператора существует; для хранения приводите номер к +7XXXXXXXXXX.

ИИН/БИН (12 цифр, только формат)

Что не проверяет
Только 12 цифр. Контрольная цифра и дата рождения в ИИН не проверяются — регулярное выражение их не посчитает, это делается в коде.

Цвет HEX

Что не проверяет
#RGB, #RGBA, #RRGGBB и #RRGGBBAA, как в CSS.

Slug (адрес страницы)

Что не проверяет
Латиница в нижнем регистре, цифры и одиночные дефисы между словами.

SemVer 2.0.0

Что не проверяет
Официальное выражение с semver.org: группы — major, minor, patch, pre-release, build.

JWT (форма)

Что не проверяет
Три части base64url через точку — только форма. Подпись и сроки проверяет библиотека JWT на сервере.
Шаблоны и их оговорки

Ограничения

  • Поведение — движка этого браузера: в старом браузере новые возможности (флаг v, модификаторы) недоступны, а в другом языке то же выражение может работать иначе — смотрите заметки на вкладке «Код».
  • Подсветка в тексте — до 300 КБ и до 3000 совпадений; список — до 5000 совпадений, текст — до 5 МБ.
  • Разбор по частям объясняет синтаксис, но не проверяет смысл: «email-подобное» выражение не гарантирует существующий адрес.
  • Шаблоны проверяют формат, а не содержание: даты не сверяются с календарём, ИИН/БИН — с контрольной цифрой, JWT — с подписью.

Приватность

  • Выражение и текст обрабатываются в вашем браузере, в фоновом потоке этой страницы; текст никуда не отправляется, адрес страницы не меняется. Выражение, флаги и счётчики уходят к нам только в краткой сводке, если вы сами приложите её к заявке.
  • Выражение, флаги, тест-кейсы и текст до 200 КБ хранятся только в этом браузере (localStorage); больший текст живёт только в памяти вкладки. «Сбросить всё» удаляет данные.
  • В аналитику уходит только факт копирования или скачивания кода (язык) и выбор шаблона из библиотеки (его идентификатор) — без выражений и текста.
  • Результат уходит к нам, только если вы сами оставите заявку и не снимете галочку «Приложить результат» — что именно уйдёт, видно в форме. Ключи, пароли и токены в сводку не попадают.

Похожие инструменты

Все инструменты · 40
Сжатие картинок в WebP и AVIFПеретащите картинки — WebP, AVIF или JPEG по качеству или целевому размеру в КБ, шторка «до/после» 1:1, srcset и <picture>, пакетный ZIP. Всё в браузере.Генератор favicon и иконокИз картинки, SVG или буквы → favicon.ico, favicon.svg с тёмной темой, PNG всех размеров, apple-touch-icon, maskable, manifest и HTML; превью вкладки, iOS и Android — одним архивом.Предпросмотр ссылок (Open Graph)Вставьте HTML или заполните поля — и посмотрите, как ссылка выглядит в Telegram, WhatsApp, VK, Facebook, X, LinkedIn и Slack. Проверка og:image, длины текста и twitter:card, готовый блок <head>.Конвертер JSON, YAML и CSVПеревод между JSON, YAML и CSV с форматированием, сортировкой ключей, проверкой синтаксиса с точным местом ошибки и деревом данных.Cron: расписание по-человеческиCron-выражение ↔ понятный текст, ближайшие запуски в вашем часовом поясе, конструктор расписания и варианты для Linux, Quartz, GitHub Actions и Kubernetes.Base64, хеши, UUID и ULIDBase64/base64url, Base32, HEX, URL и HTML в обе стороны, хеши текста и файлов любого размера (SHA-256, SHA-3, BLAKE3, MD5, CRC-32), HMAC, сверка контрольных сумм, генерация и разбор UUID v4/v7, ULID и NanoID.
Расскажите о задаче — мы изучим запрос и свяжемся с вами

Нужна валидация данных, которой можно доверять?

Спроектируем проверки форм и импорта на клиенте и сервере, с тестами и без хрупких регулярных выражений там, где нужен разбор. Объём и стоимость — после брифа.

  • Первый короткий разговор бесплатный — выбираем формат работы
  • NDA — по вашему или нашему шаблону
  • Стоимость — после брифа и согласования объёма

Не присылайте через форму пароли, ключи доступа и исходный код — безопасную передачу доступа обсудим отдельно.

Нажимая кнопку, вы соглашаетесь с обработкой персональных данных.