Разделите поиск подстроки и проверку полного значения.
Зачем
Зачем это нужно
Укажите движок, флаги, алфавит и правила пробелов.
Добавьте отрицательные примеры и длинный почти подходящий ввод.
Вопросы
Частые вопросы
Как задать регулярку без расплывчатого «любой формат»?
«Для учебного артикула принимаем AB-0042 и ZX-9000. Отклоняем AB-42, AB-00420, кириллическое АВ-0042 и пробел перед кодом. Среда — Python re, проверяется вся строка». Попросите таблицу совпадений и пояснение классов символов. Конкретный алфавит важен: общее обозначение цифр в некоторых движках включает больше символов, чем только привычные ASCII-цифры.
Почему шаблон ведёт себя иначе в редакторе?
Редактор и библиотека могут использовать разные движки и правила экранирования. Кроме того, одна строка проходит через синтаксис языка, а другая вводится напрямую в поле поиска. Попросите отдельно показать исходное выражение и его строковое представление в коде. Укажите многострочный режим: якоря начала и конца могут относиться к строке текста, а не ко всему значению.
Как проверить скорость сложной регулярки?
Проверьте не только совпадающий текст, но и длинный ввод, который почти подходит и ломается в конце. Вложенные повторения в некоторых движках вызывают чрезмерный перебор. Модель может указать подозрительную конструкцию, но время выполнения измеряется в вашей среде. Ограничьте размер входа и рассмотрите более простой разбор, если шаблон должен обрабатывать недоверенные большие строки.
Когда стоит отказаться от регулярного выражения?
Когда задача требует понимания вложенной структуры или контекста, готовый парсер обычно выразительнее. Например, извлечение значения из JSON лучше описывать через разбор объекта и обращение к полю. Для сложного адреса сначала уточните, что именно проверяется: форма записи, существование или принадлежность. Регулярка не подтверждает доставляемость почты и не проверяет реальность указанного адреса.
Рядом
Соседние страницы каталога
Дальше — весь каталог задач: поиск по названию, темы и фильтры.