Текст и кодирование

Инструменты для регулярных выражений

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

Тестер регулярных выражений и тестер регулярных выражений Python запускают настоящие движки JavaScript и Python, а не приближённую имитацию, поэтому именованные группы, флаги и замены ведут себя так же, как в вашем коде. сравнение движков регулярных выражений ставит PCRE2 и RE2 рядом на одном выражении — это важно, поскольку RE2 отклоняет обратные ссылки, которые допускает PCRE2. Проверка .gitignore объясняет цепочку решений по каждому правилу, а Тестер Glob-шаблонов даёт выбрать между семантикой minimatch и picomatch.

7 инструментов

Вопросы об инструментах категории «Regex & Pattern Matching»

Почему мой regex работает в JavaScript, но не работает в Python, или наоборот?

Движки регулярных выражений JavaScript и Python различаются синтаксисом именованных групп, историей поддержки lookbehind и парой escape-последовательностей. Проверьте один и тот же шаблон в Тестере регулярных выражений для JavaScript и в тестере регулярных выражений Python для модуля re, чтобы увидеть реальное поведение каждого движка, а не полагаться на предположения.

Почему правило .gitignore не исключает нужный файл?

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

В чём разница между движками регулярных выражений PCRE2 и RE2?

RE2, который использует Go и такие инструменты, как ripgrep, гарантирует линейное время работы, отказываясь от конструкций вроде обратных ссылок и неограниченного lookaround, которые поддерживает PCRE2. сравнение движков регулярных выражений запускает одно и то же выражение на обоих движках, так что сразу видно, валиден ли в RE2 шаблон, работающий в PCRE2.