Тестер Регулярных Выражений
Тестируйте и отлаживайте регулярные выражения мгновенно в браузере. Выделяйте совпадения, просматривайте группы захвата, используйте режим замены — бесплатно и приватно.
Тестируйте и отлаживайте регулярные выражения мгновенно в браузере. Выделяйте совпадения, просматривайте группы захвата, используйте режим замены — бесплатно и приватно.
Регулярные выражения — это предметно-ориентированный язык для сопоставления шаблонов в тексте. Они используются в компьютерных технологиях с 1968 года и теперь встроены во все современные языки программирования, текстовые редакторы и инструменты поиска в командной строке. Синтаксис краток, но подвержен ошибкам: небольшие изменения приводят к незначительному изменению поведения сопоставления, а сложные выражения быстро становятся нечитаемыми. Тестер, который показывает совпадения в режиме реального времени по мере редактирования шаблона, является наиболее эффективным способом разработки и проверки регулярных выражений.
Этот тестер запускается в вашем браузере с использованием механизма регулярных выражений JavaScript (того же, который использует ваше приложение, если оно работает в браузере). Шаблоны и тестовый текст обновляются реактивно: каждое изменение любого из них приводит к повторному запуску сопоставления. Группы совпадений выделены, захваченные группы перечислены, а флаги (регистронезависимые, многострочные, глобальные) доступны для тестирования.
Синтаксис регулярных выражений незначительно различается в зависимости от движка. JavaScript соответствует спецификации ECMAScript; Python, PCRE (используется PHP и многими другими), Java и Go имеют свои собственные диалекты с пересекающимися, но не идентичными функциями. Разработанные здесь шаблоны используют синтаксис ECMAScript; межплатформенная переносимость требует проверки документации каждой цели.
Ошибки регулярных выражений, как известно, трудно отладить после развертывания. Шаблон, который выглядит разумным, может соответствовать больше или меньше, чем предполагалось, давать сбой в крайних случаях или иметь катастрофический возврат при определенных входных данных. Интерактивное тестирование шаблонов на основе репрезентативных входных данных позволяет выявить проблемы еще до проверки кода и его запуска в производство.
Шаблоны также выигрывают от документации. Отображение регулярного выражения рядом с входными данными, которым оно должно соответствовать, и входными данными, которым оно не должно соответствовать, делает намерение явным. Будущие специалисты по сопровождению (включая вас через шесть месяцев) ценят документированные тестовые примеры больше, чем умные остроты.
Введите шаблон, введите тестовый ввод и посмотрите совпадения, выделенные в реальном времени.
Регулярное выражение JavaScript соответствует спецификации ECMAScript. Основные возможности: классы символов ([abc], [^abc]), квантификаторы (*, +, ?, {n,m}), чередование (|), группировка ((...)), захватывающие и нефиксирующие группы, просмотр вперед и назад (современные движки), обратные ссылки, именованные группы, escape-последовательности свойств Unicode (с флагом u) и стандартный набор escape-последовательностей.
Важные отличия от PCRE и Python: поддержка просмотра назад появилась в JavaScript недавно (2018+); именованные группы используют синтаксис (?<имя>...); некоторые escape-символы Unicode требуют, чтобы флаг u работал правильно. Шаблоны, предназначенные для межъязыкового использования, следует сверять с документацией каждой цели.
Производительность: механизмы регулярных выражений на основе обратного отслеживания (большинство из которых включают JavaScript) могут иметь катастрофические последствия для определенных патологических шаблонов. Тесты, которые подвешивают тестер, являются признаком того, что шаблон нуждается в упрощении — обычно за счет отказа от вложенных кванторов и неоднозначного чередования.