Regex Tester

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

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

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

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

Наиболее распространенными флагами являются: 'g' (global) находит все совпадения, а не только первое, 'i' (case-insensitive) игнорирует различия между прописными и строчными буквами, 'm' (multiline) заставляет ^ и $ соответствовать началу/концу строки, а не только началу/концу строки, и 's' (dotall) заставляет . соответствовать символам новой строки. Комбинируйте флаги типа 'gi' для глобального сопоставления без учета регистра.

Для электронной почты: попробуйте /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ для базовой проверки. Для URL-адресов: /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/ works for most cases. Обратите внимание, что идеальная проверка электронной почты/URL чрезвычайно сложна - эти шаблоны работают в большинстве случаев.

Точка (.) совпадает с любым символом. Звездочка (*) означает "ноль или более раз", а плюс (+) - "один или более раз". Таким образом, .* соответствует нулю или более любых символов (в том числе не соответствует ничему), в то время как .+ требует соответствия хотя бы одному символу. Например, 'a.*b' соответствует 'ab' или 'a123b', а 'a.+b' - только 'a123b'.

По умолчанию квантификаторы, такие как *, + и {n,m}, являются жадными - они совпадают с максимально возможным количеством. Добавьте вопросительный знак (?) после квантификатора, чтобы сделать его не жадным (ленивым) - он будет совпадать как можно меньше. Например, в тексте '<div>hello</div><div>world</div>', /<div>.*<\/div>/ соответствует всей строке (жадный), а /<div>.*?<\/div>/ соответствует каждому тегу отдельно (нежадный).

Группы захвата используют круглые скобки () для извлечения определенных частей совпадения. Например, /user-(\d+)/ извлекает числовой идентификатор пользователя. Захваченное значение может быть доступно на большинстве языков, использующих группы соответствия. Используйте (?:...) для групп без захвата, если вам нужна группировка для квантификаторов, но вы не хотите захватывать значение.

Вставьте образцы записей журнала в область тестовых строк и создайте шаблоны для извлечения временных меток, IP-адресов, кодов состояния или сообщений об ошибках. Визуальная подсветка показывает, что именно совпадает, помогая уточнить шаблоны перед их развертыванием в инструментах анализа журналов, таких как Logstash, Splunk, или в пользовательских сценариях.

Lookaheads (?=...) и lookbehinds (?<=...) утверждают, что шаблон существует впереди или позади, не включая его в соответствие. Например, /\d+(?= dollars)/ соответствует числам, за которыми следует ' dollars', но захватывает только число. Отрицательные lookaheads (?!...) и отрицательные lookbehinds (?<!...) утверждают, что шаблон НЕ существует.

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