Перейти к содержанию

Regex из примеров

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

Входные данные
Примеры, которые паттерн НЕ должен совпадать
Выходные данные

Regex из примеров

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

Уровень обобщения контролирует, насколько буквальным будет результат. «Точные символы» сохраняет каждый символ и комбинирует примеры разных форм с чередованием. «Классы символов» заменяет цифры, буквы и пробелы на \d, \p{Lu}/\p{Ll} и \s, сохраняя точное количество повторений из ваших примеров. «Гибкие квантификаторы» идёт дальше и преобразует эти последовательности в совпадения «один или более», что даёт лучшее обобщение, но совпадает с большим количеством случаев, чем ваши образцы. Якоря добавляют ^ и $, чтобы вся строка совпадала, а не просто подстрока, чувствительность к регистру контролирует, имеет ли значение регистр букв, а именованные группы оборачивают переменные части паттерна, чтобы вы могли извлечь их по имени позже. Опция диалекта регулирует, как писать именованные группы для JavaScript, PCRE или Python, так как эти три не согласны по синтаксису.

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

Всё работает локально в вашем браузере: примеры, которые вы вставляете, отрицательные примеры и сгенерированный паттерн никогда не покидают ваше устройство. Скопируйте результат, загрузите его как файл .txt или отправьте вывод обратно на вход, чтобы уточнить его с учётом большего количества примеров.

FAQ

Сгенерированный regex всегда совпадает с каждым примером, который я вставил?
Да — паттерн строится непосредственно из ваших примеров, поэтому он разработан так, чтобы совпадать со всеми ними на выбранном вами уровне строгости. Если ваши примеры имеют принципиально разные формы, инструмент возвращается к совпадению любой из отличающихся форм.
Что именно меняет «классы символов»?
Он заменяет последовательности цифр, букв и пробелов на их класс regex (\d, \p{Lu}, \p{Ll}, \s) вместо буквальных символов, сохраняя при этом точную длину, найденную в ваших примерах — так что «AB12» становится \p{Lu}{2}\d{2}, а не буквально «AB12».
Почему паттерн также совпадает с одним из моих отрицательных примеров?
Отрицательное совпадение обычно означает, что обобщение шире вашего намерения — попробуйте более строгий уровень, включите якоря или добавьте более конкретный отрицательный пример, чтобы отмеченная строка точно показала, что прошло.
Будет ли паттерн работать совершенно одинаково в Python или PCRE?
Классы символов и квантификаторы общие для всех диалектов, но синтаксис именованных групп отличается — опция диалекта регулирует только то, как эти группы отображаются (JavaScript использует (?<name>…), PCRE и Python традиционно используют (?P<name>…)); всегда тестируйте результат против вашего реального движка.
Загружаются ли мои примеры строк куда-либо?
Нет. Паттерн генерируется полностью в вашем браузере — ваши примеры и сгенерированный regex никогда не покидают ваше устройство.