calcal.ru
Инструмент для разработчиков и аналитиков

Regex-тестер на русском языке

Тестируйте регулярные выражения в реальном времени. Подсветка совпадений, группы захвата, замена текста и полная шпаргалка по синтаксису — всё на русском языке.

10+
Готовых шаблонов
Email, телефон, ИНН, паспорт и др.
5
Флагов
g, i, m, s, u — полный набор
100%
Клиентский
Данные не покидают ваш браузер
JS
Движок RegExp
Стандартный JavaScript-движок

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

Регулярные выражения (regex, regexp) — это формальный язык поиска и манипуляции текстом с помощью шаблонов. Они позволяют описывать сложные паттерны одной строкой, заменяя десятки строк кода. Regex используется в каждом языке программирования, текстовом редакторе и командной оболочке.

📜

Истоки: Клини и Томпсон

Математик Стивен Клини в 1956 году формализовал концепцию регулярных множеств. В 1968 году Кен Томпсон реализовал алгоритм сопоставления в текстовом редакторе QED, а затем в легендарном инструменте grep в Unix. Так regex стали стандартом обработки текста.

⚙️

Как работает движок

Regex-движок преобразует шаблон в конечный автомат (NFA или DFA), который посимвольно обходит входной текст. NFA-движки (JavaScript, Python, Java) поддерживают обратные ссылки и lookaround, но могут быть подвержены катастрофическому бэктрекингу при неудачных паттернах.

🌍

Стандарты: POSIX и PCRE

Существуют два основных стандарта: POSIX (базовый BRE и расширенный ERE) используется в Unix-утилитах, а PCRE (Perl Compatible Regular Expressions) стал основой для JavaScript, Python, PHP и других языков. Наш тестер использует движок JavaScript RegExp.

Где применяются регулярные выражения

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

✅

Валидация данных

Проверка формата email, телефона, ИНН, даты, URL и других данных. Regex позволяет описать допустимый формат одной строкой и мгновенно валидировать пользовательский ввод в формах.

🔍

Поиск и замена

Массовая замена текста по шаблону в редакторах (VS Code, Sublime Text, IntelliJ IDEA), командной строке (sed, awk, grep) и скриптах. Экономит часы ручной работы.

📊

Парсинг и извлечение

Извлечение структурированных данных из неструктурированного текста: парсинг логов, HTML, CSV, конфигов. Группы захвата выделяют нужные фрагменты автоматически.

🕸️

Веб-скрапинг

Извлечение данных с веб-страниц: цены, контакты, каталоги товаров. Regex дополняет CSS-селекторы и XPath, работая с текстовым содержимым элементов.

📝

Анализ логов

Фильтрация и агрегация серверных логов: поиск ошибок, извлечение IP-адресов, анализ времени ответа. Инструменты мониторинга (ELK, Grafana Loki) опираются на regex.

🛡️

Информационная безопасность

Обнаружение подозрительных паттернов: SQL-инъекции, XSS-атаки, утечки данных (номера карт, пароли в логах). WAF-правила и SIEM-системы активно используют regex.

Синтаксис regex/ справочник

Основные конструкции регулярных выражений JavaScript. Все примеры можно протестировать в нашем тестере выше.

Символьные классы

Определяют набор символов для сопоставления. Точка . совпадает с любым символом, \d — с цифрой, \w — с буквой, цифрой или подчеркиванием, \s — с пробельным символом. Квадратные скобки [а-яА-Я] задают собственный набор — например, только кириллические буквы.

/[а-яА-ЯёЁ]+/g — найти все русские слова

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

Указывают количество повторений: * (0+), + (1+), ? (0 или 1), {n} (ровно n), {n,m} (от n до m). По умолчанию жадные — захватывают максимум. Добавьте ? для ленивого поведения.

/\d{2,4}/g — последовательности из 2-4 цифр

Якоря и границы

Якоря не совпадают с символами, а обозначают позицию: ^ — начало строки, $ — конец строки, \b — граница слова. С флагом m якоря работают для каждой строки многострочного текста.

/^\d+$/gm — строки, состоящие только из цифр

Группы и lookaround

Круглые скобки () создают группу захвата, доступную через $1, $2... в замене. Именованные группы (?<name>...) повышают читаемость. Lookahead (?=...) и lookbehind (?<=...) проверяют контекст без захвата.

/(?<day>\\d{2}).(?<month>\\d{2}).(?<year>\\d{4})/g — дата с именованными группами

Шаблоны для российских данных

Готовые регулярные выражения для валидации и парсинга данных, специфичных для российского рынка. Все паттерны протестированы и готовы к использованию в проектах.

Телефон РФ (+7 / 8)

/^(\+7|8)[\s-]?\(?\d{3}\)?[\s-]?\d{3}[\s-]?\d{2}[\s-]?\d{2}$/
Пример:+7 (495) 123-45-67

Поддерживает форматы: +79031234567, 8-903-123-45-67, +7 (903) 123 45 67

Email

/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
Пример:user@mail.ru

Базовая проверка формата. Для production рекомендуется отправка подтверждения

ИНН юридического лица

/^\d{10}$/
Пример:7707083893

10 цифр. Для полной проверки используйте алгоритм контрольной суммы

ИНН физического лица

/^\d{12}$/
Пример:500100732259

12 цифр. Две контрольных цифры вычисляются по весовым коэффициентам

Паспорт РФ

/^\d{2}\s?\d{2}\s?\d{6}$/
Пример:45 08 123456

Серия (4 цифры) + номер (6 цифр), с пробелами или без

Дата DD.MM.YYYY

/^(0[1-9]|[12]\d|3[01])\.(0[1-9]|1[0-2])\.(19|20)\d{2}$/
Пример:25.12.2024

Проверяет диапазоны дня (01-31), месяца (01-12) и века (19xx-20xx)

СНИЛС

/^\d{3}-\d{3}-\d{3}\s?\d{2}$/
Пример:123-456-789 01

Формат XXX-XXX-XXX XX. Контрольная сумма проверяется отдельным алгоритмом

Почтовый индекс РФ

/^\d{6}$/
Пример:101000

6 цифр. Первые три — код зоны, последние три — номер отделения

Советы по работе с regex

Практические рекомендации, которые помогут писать эффективные и поддерживаемые регулярные выражения.

1

Начинайте с простого

Пишите regex итеративно: сначала простой паттерн, затем добавляйте детали. Тестируйте на каждом шаге, чтобы не запутаться в сложном выражении.

2

Используйте именованные группы

Конструкция (?<name>...) делает код читаемым. Вместо match[1] вы пишете match.groups.name, и намерение сразу понятно.

3

Остерегайтесь жадности

Квантификаторы * и + по умолчанию жадные — захватывают максимум. Для минимального захвата добавьте ?: .*? вместо .* при работе с HTML-тегами.

4

Экранируйте спецсимволы

Символы . * + ? ^ $ { } [ ] ( ) | \ имеют особое значение. Для литерального совпадения ставьте обратный слеш: \. \* \+

5

Избегайте катастрофического бэктрекинга

Паттерны вида (a+)+ или (a|a)+ на длинных строках без совпадения вызывают экспоненциальный рост времени. Тестируйте на больших входных данных.

6

Используйте флаг u для Unicode

Без флага u JavaScript не распознаёт суррогатные пары. Для корректной работы с эмодзи и кириллицей включайте Unicode-режим.

Как пользоваться тестером

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

1

Введите паттерн

Впишите регулярное выражение в поле ввода или выберите один из готовых шаблонов (email, телефон, ИНН и др.).

2

Настройте флаги

Включите нужные флаги: g (глобальный поиск), i (без учёта регистра), m (многострочный), s (dotall), u (Unicode).

3

Вставьте текст

Введите или вставьте тестовую строку. Совпадения подсветятся жёлтым автоматически в реальном времени.

4

Изучите результат

Посмотрите детали каждого совпадения: индекс, группы захвата, именованные группы. Включите замену при необходимости.

Regex в разных языках программирования

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

JavaScript

RegExp, String.match(), String.replace(), String.matchAll()

Встроенные литералы /pattern/flags. Наш тестер работает именно на этом движке.

Python

re.match(), re.search(), re.findall(), re.sub()

Модуль re. Поддержка именованных групп (?P<name>...). Опциональный модуль regex расширяет возможности.

PHP

preg_match(), preg_replace(), preg_match_all()

PCRE-совместимый движок. Модификатор u для UTF-8. Один из самых мощных движков.

Java

Pattern.compile(), Matcher.find(), Matcher.group()

Класс java.util.regex.Pattern. Поддержка Unicode-категорий и intersections в символьных классах.

Паттерны, разработанные в нашем тестере, с высокой вероятностью будут работать и в других языках, так как JavaScript RegExp основан на стандарте ECMA-262, совместимом с PCRE. Для англоязычной версии тестера также доступна отдельная страница.

Часто задаваемые вопросы

Наш тестер полностью на русском языке — все описания, шпаргалка и готовые шаблоны адаптированы для русскоязычных разработчиков. Инструмент работает без регистрации, данные не покидают браузер, а готовые паттерны для российских данных (ИНН, телефон +7, паспорт) доступны в один клик.
Стандартный JavaScript RegExp (спецификация ECMA-262). Это тот же движок, который работает в Chrome, Firefox, Safari и Node.js. Паттерны, протестированные здесь, будут идентично работать в вашем JavaScript-коде.
Группы захвата — это части регулярного выражения, заключённые в круглые скобки (). Они извлекают подстроку из совпадения. Например, в паттерне (\d{2})\.(\d{2})\.(\d{4}) для даты 25.12.2024 группа $1 содержит 25, $2 — 12, $3 — 2024. Именованные группы (?<day>\d{2}) ещё удобнее — обращение через match.groups.day.
Режим замены использует метод String.replace() JavaScript. В строке замены можно использовать $1, $2 для ссылок на группы захвата, $& для всего совпадения, $` для текста до совпадения, $' для текста после. Именованные группы доступны через $<name>.
g (global) — находит все совпадения, а не только первое. i (insensitive) — игнорирует регистр букв. m (multiline) — ^ и $ работают для каждой строки. s (dotall) — точка . совпадает с символом новой строки \n. u (unicode) — корректная обработка Unicode-символов, включая эмодзи и суррогатные пары.
Скорее всего, проблема в катастрофическом бэктрекинге. Это происходит, когда NFA-движок пробует слишком много вариантов сопоставления. Типичные проблемные паттерны: (a+)+, (a|a)*, (.+)+ на длинных строках без совпадения. Решение — используйте атомарные группы, более конкретные символьные классы вместо ., или ленивые квантификаторы.
Для русских букв используйте класс [а-яА-ЯёЁ]. Обратите внимание: буква ё не входит в диапазон а-я, поэтому её нужно добавлять отдельно. С флагом u можно использовать Unicode-категории, но JavaScript пока не поддерживает \p{Cyrillic} без дополнительных полифиллов.
Да. Наш тестер работает полностью на стороне клиента — весь код выполняется в вашем браузере. Тестовые строки не отправляются на сервер, не сохраняются и не логируются. Вы можете спокойно проверять паттерны с любыми данными.
Lookahead (?=...) и lookbehind (?<=...) — это проверки позиции без захвата текста. Позитивный lookahead (?=\d) проверяет, что за текущей позицией следует цифра, но не включает её в совпадение. Негативные версии (?!...) и (?<!...) проверяют отсутствие. Lookbehind поддерживается в JavaScript начиная с ES2018.
Для простых задач — да: извлечь содержимое тега, найти ссылки, заменить атрибуты. Однако для полноценного парсинга HTML regex не подходит, так как HTML — контекстно-свободный язык, а regex работает только с регулярными языками. Для сложного парсинга используйте DOM-парсеры (DOMParser, cheerio, BeautifulSoup).
Лиана Арифметова
Создатель

Лиана Арифметова

Миссия: Демократизировать сложные расчеты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

⚖️

Отказ от ответственности

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые данным инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

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

Ограничение ответственности. Авторы и разработчики сервиса не несут никакой ответственности за прямой или косвенный ущерб, возникший в результате использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию и применение полученных результатов.

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

💻

Калькулятор NPS (Net Promoter Score)

Расчёт индекса лояльности NPS по результатам опроса. Визуализация, интерпретация, бенчмарки по отраслям.

💻

Калькулятор электричества для ПК

Расчёт потребления электричества компьютером. При играх, работе, в простое. Стоимость в месяц.

⚙️

Калькулятор экструзии

Расчёты экструзии: производительность, фильера, шнек, охлаждение, тяговое устройство, себестоимость

💰

Калькулятор кредитной карты

Расчёт минимального платежа, льготного периода, переплаты по кредитной карте. Сравнение карт Сбербанк, Тинькофф, Альфа-Банк, ВТБ.

🏠

Калькулятор размера кольца по диаметру и окружности пальца

Определите размер кольца онлайн. Перевод размеров между российской, американской (US), европейской (EU) и британской (UK) системами. Таблица соответствия.

🏥

Калькулятор MELD (MELD-Na)

Оценка тяжести заболеваний печени по шкале MELD и MELD-Na. Прогноз смертности и приоритет трансплантации.

💻

Калькулятор когортного анализа (Retention)

Расчёт Retention, Churn Rate, LTV по когортам. Тепловая карта удержания пользователей, визуализация и экспорт в CSV.

📐

Калькулятор теории графов

Построение графов, алгоритмы Дейкстры, BFS, DFS, минимальное остовное дерево (Краскал, Прим). Свойства графов.

💰

Калькулятор аннуитет vs дифференцированный

Сравнение аннуитетного и дифференцированного платежей по кредиту. Переплата, график, разница.

⚙️

Калькулятор фармацевтического производства

Расчёты фармпроизводства: таблетирование, растворение, стабильность, чистые помещения, валидация

💰

Калькулятор среднего заработка

Расчёт среднего заработка для отпускных, больничных и командировочных. По Постановлению 922.

🏠

Калькулятор теста

Расчёт пропорций муки, воды, дрожжей по типу выпечки. Дрожжевое, песочное, слоёное, заварное, пельменное тесто.

🏗️

Калькулятор натяжного потолка

Расчёт стоимости натяжного потолка: ПВХ, ткань, светильники, углы.

📐

Калькулятор процентов

Посчитать проценты от числа, прибавить или вычесть процент, найти разницу. Удобный онлайн калькулятор с формулами.

💻

Калькулятор A/B-теста (размер выборки)

Расчёт необходимого размера выборки для A/B-теста и анализ результатов. Статистическая значимость, p-value, доверительные интервалы.