Тулси
Назад в блог

Технологии

Regex онлайн: как проверить шаблон на своём тексте

9 мин чтения

Проверка регулярного выражения на своём тексте показывает, что шаблон реально ловит и что пропускает. Вы вставляете запись, кладёте рядом лог, выгрузку или учебный фрагмент и смотрите подсветку совпадений. Без этого шага легко утащить в код «почти верный» шаблон и час искать, почему форма молчит. Откройте проверку регулярных выражений на Тулси: поле шаблона, флаги вроде g и i, текст и подсветка. Всё считается в браузере на устройстве. Угол страницы: цикл «шаблон → свои строки → правка». Букварь синтаксиса: regex для новичка. Готовые записи для почты: regex-шаблон для email. Ниже: зачем тестер, как собрать примеры, как пройти путь в инструменте и что смотреть при странных совпадениях. FAQ в конце.

Зачем проверять шаблон на живом тексте

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

Люди ищут «регулярные выражения онлайн» и «проверка регулярного выражения», когда уже есть черновик шаблона и кусок данных. Им нужен ответ «что нашлось», не лекция про конечные автоматы. Соседний огромный кластер «регулярные выражения» часто ведёт в учебники: здесь эта ветка отсечена.

Игровые фильтры карт и сборки по слову «regex» в поиске тоже шум. Эта страница про шаблон для логов, форм, CSV и учебного примера в коде.

Проверка на чужом идеальном примере врёт. Автор инструкции подставил строку, которая идеально ложится под его запись. Ваш лог с лишним пробелом или BOM ведёт себя иначе. Берите свои строки: одну «должна найтись», одну «не должна».

Движок на Тулси совпадает с JavaScript в браузере. Если шаблон потом пойдёт в Python, Go или SQL, сверьте классы символов и якоря в том рантайме. Тестер ловит логику совпадений, не гарантирует байт-в-байт перенос в другой язык.

Что подготовить: шаблон, флаги, набор строк

Запишите шаблон отдельно от текста. Не правьте оба поля сразу «пока не зазеленеет»: вы потеряете, что именно изменили. Сначала зафиксируйте выражение, потом крутите только примеры, потом снова выражение.

Соберите короткий набор строк. Минимум: позитив, который обязан совпасть; негатив, который обязан молчать; пограничный случай с пробелом, регистром или хвостом. Три строки уже лучше одной «красивой».

Решите про флаги до вставки. g ищет все совпадения в фрагменте. i игнорирует регистр. Без g вы увидите только первое попадание и решите, что шаблон «почти не работает», хотя дальше в тексте ещё есть нужные куски.

Какие примеры дают честный сигнал

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

Для негатива берите похожий мусор: почти email без @, телефон с буквами, дату с буквами месяца, если вы ждёте только цифры. Если негатив слишком далёкий («привет» против шаблона цифр), тест ничего не доказывает.

Не вставляйте сразу весь файл на мегабайт. Для отладки хватает среза. Большой текст тормозит глаз: вы не заметите лишнее совпадение посередине.

Чего не ждать от тестера

Тестер не заменяет юнит-тесты в репозитории. Он ускоряет черновик шаблона. В коде всё равно зафиксируйте набор кейсов, иначе через месяц правка одного символа сломает прод без сигнала.

Он не «валидирует email по RFC» сам по себе. Валидность задаёте вы границами выражения. Готовые практичные записи и ложные срабатывания разобраны в шаблоне для email, телефона и даты.

Он не учит синтаксис с нуля. Если вы ещё не отличаете \d от ., начните с regex для новичка, затем вернитесь к циклу проверки на своих данных.

Как пройти путь в проверке на Тулси

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

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

Если совпадений нет, проверьте якоря ^ и $, экранирование спецсимволов и регистр. Затем упростите шаблон до самого узкого куска, который обязан найтись, и наращивайте ограничения обратно. Так быстрее, чем гадать по всей записи сразу.

Данные остаются на устройстве. Закрыли вкладку, текст из инструмента пропал. Для секретов из логов это плюс: не отправляйте боевые токены в чужие «облачные» песочницы, если можете проверить локально в браузере.

После стабильной подсветки скопируйте финальный шаблон в код или в конфиг. Не оставляйте единственную копию только в поле тестера: через день вкладка закрыта, а в задаче осталась старая версия.

Как читать совпадения и типичные ловушки

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

Совпадение длиннее ожидаемого: жадность квантификаторов. Сузьте класс символов, поставьте более точный разделитель, проверьте, не съедает ли .+ хвост до конца строки.

Совпадение короче ожидаемого: вы зафиксировали жёсткую длину \d{3}, а в данных четыре цифры, или забыли опциональный хвост. Подсветка честно показывает фрагмент; расширьте шаблон осознанно, не «добавьте .* на всякий случай».

Пустые совпадения при шаблоне с * или ? на необязательную группу путают новичков. Вы видите «совпало», а строка визуально пустая. Уточните, нужен ли вам обязательный кусок.

Жадность и ленивость на подсветке

Жадный шаблон захватывает максимум. На цветной подсветке это выглядит как длинная лента через полстроки. Если вам нужно первое короткое поле до разделителя, ограничьте класс: вместо .* возьмите [^;]+ или аналог под ваш разделитель.

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

Сверьте переносы строк. Вставленный из Excel или из чата текст может нести \r. Якорь конца строки ведёт себя иначе, чем вы ждали в Unix-логе. При странном «молчании» в конце строки проверьте невидимые символы.

Регистр, юникод и кириллица

Без флага i Error и error разные. В логах смешанный регистр встречается часто. Включайте i только если это правда допустимо для задачи: для паролей и токенов регистр обычно критичен.

Кириллица в классе \w в JavaScript ведёт себя не так, как «буква» в бытовом смысле: зависит от юникодных свойств и версии движка. Если ловите русские слова, задайте явный диапазон или конкретные буквы, которые вам нужны, и проверьте на своих строках.

Не копируйте шаблон из Python-инструкции с re.VERBOSE и комментариями внутрь поля тестера как есть. Сначала получите компактную рабочую запись для JS, потом адаптируйте под целевой язык.

Соседние инструменты и когда открыть другую статью

Рядом с regex часто нужен разбор JSON из ответа API: откройте JSON formatter, выровняйте документ, вырежьте нужное поле и уже его прогоните через шаблон. Кривой JSON лучше сначала починить, иначе вы отлаживаете «шаблон», а ломается структура файла.

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

Если вы ищете готовую строку «вставь и забудь» для почты или телефона, не размножайте её из головы: возьмите разбор готовых шаблонов и прогоните свои позитивы и негативы здесь.

Если синтаксис ещё плавает, сначала короткий путь новичка, затем возвращайтесь к этой схеме проверки на боевом фрагменте.

Частые вопросы

Как проверить регулярное выражение онлайн на своём тексте

Откройте проверку regex, вставьте шаблон и фрагмент данных, включите нужные флаги. Смотрите подсветку совпадений и длину захвата. Правите шаблон или примеры, пока позитивы находятся, а негативы молчат. Данные считаются в браузере на вашем устройстве.

Чем эта проверка отличается от «regex для новичка»

Статья для новичка объясняет первый шаблон и базовые ловушки синтаксиса. Здесь угол другой: цикл проверки уже готового или почти готового выражения на ваших строках. Учебные определения сведены к минимуму. Если вы ещё не открывали поля тестера, начните с новичка, затем вернитесь сюда.

Нужны ли флаги g и i каждый раз

Нет. g берите, когда хотите видеть все совпадения во фрагменте, не только первое. i берите, когда регистр правда не важен для задачи. Для токенов, паролей и части кодов регистр критичен: там i вредит. Включайте флаги сознательно, не «по привычке».

Почему шаблон работает в тестере и ломается в коде

Частая причина: разные движки и разный способ передачи строки. Экранирование в литерале языка добавляет обратные слэши. Якоря и классы символов в Python или в SQL отличаются. Скопируйте ту же входную строку в юнит-тест целевого языка и сравните. Тестер в браузере совпадает с JavaScript.

Можно ли вставлять секретные логи в проверку

На Тулси расчёт идёт локально в браузере, текст на сервер не уходит. Всё равно вырезайте токены и персональные данные, если можете обойтись срезом. Чужие «облачные» песочницы без понятной политики хранения для секретов не используйте. Минимальный анонимизированный фрагмент обычно достаточен для отладки шаблона.

Что делать если подсветка захватывает полстроки

Скорее всего шаблон слишком жадный: . и * тянут максимум. Замените на узкий класс до разделителя или уточните границы. Проверьте, нужен ли вообще захват всей строки с якорями. Снова прогоните позитив и негатив: после сужения негативы часто начинают проходить честнее.

Как проверить что шаблон ничего лишнего не ловит

Держите явный негативный пример рядом с позитивным. Если негатив тоже подсветился, границы слабые. Добавьте якоря, уточните класс символов, запретите пробел или буквы там, где их быть не должно. Один «зелёный» позитив без негатива ничего не доказывает о точности.

Подходит ли тестер для шаблона email

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

Сохраняется ли текст после закрытия вкладки

Нет. Поля живут только в сессии страницы. Закрыли вкладку, фрагмент и шаблон из инструмента пропали. Скопируйте финальное выражение в репозиторий или в заметку задачи. Для сравнения версий удобны две вкладки или файл с набором кейсов у себя.

Чем помочь если нужно разобрать JSON а потом искать по полю

Сначала откройте JSON formatter, выровняйте документ и найдите нужное поле глазами. Скопируйте значение или срез строк в regex и уже там крутите шаблон. Так вы не смешиваете ошибку JSON с ошибкой выражения. Кривая скобка в JSON маскируется под «шаблон не работает».

Рабочий цикл: свои строки, подсветка, узкие границы. Букварь и готовые записи рядом: regex для новичка, шаблоны email и телефона.

Проверьте шаблон на тексте

Вставьте выражение и пример. Совпадения подсветятся сразу, данные остаются на устройстве.

Открыть проверку regex
Поделиться статьей

Читайте также

Regex онлайн: как проверить шаблон на своём тексте — Тулси