ПУТИ И ПОДСТАНОВОЧНЫЕ ЗНАКИ

Тестер Glob-шаблоновпроверка нужной библиотекой

Введите один шаблон и по одному пути на строку. Библиотека и параметры выбираются ниже полей ввода.

Тестер Glob-шаблонов

Пути-кандидаты

Шаблоны и пути обрабатываются в браузере; файлы не читаются и не изменяются.

Результат для каждого пути

Введите шаблон и хотя бы один путь-кандидат.

Параметры сопоставления

Windows заменяет \ на / в шаблоне и путях. Для экранирования выберите POSIX. Регистр задаётся отдельно.

Один шаблон. Пустые строки пропускаются, пробелы и дубликаты сохраняются. ! и # следуют правилам библиотеки.

Лимиты: шаблон 256, путей 200, на путь 512, всего 131 072 единицы UTF-16; 1 000 альтернатив minimatch; 2 секунды.

Результаты устарели или вычисляются.

Сборка захватывает лишние файлы или пропускает вложенную папку? Тестер Glob-шаблонов позволяет оставить список кандидатов неизменным и переключать движок либо отдельный параметр. Так проще понять, какое условие меняет результат.

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

Чем полезен Тестер Glob-шаблонов

Видно влияние глубины папок

Тестер Glob-шаблонов сохраняет исходные номера строк. Сравните src/*.ts и src/**/*.ts: файлы непосредственно в папке и во вложенных каталогах остаются рядом, а изменение охвата видно в результатах.

Сравнение выбора файлов одного уровня с рекурсивным выбором во вложенных папках.

Скрытые файлы проверяются отдельно

В примере есть обычный файл и имя с начальной точкой. Включите dot и посмотрите, какие строки добавятся. Регистр — отдельный параметр: включение скрытых файлов не разрешает автоматически расширения в верхнем регистре.

Одинаковый список до и после включения скрытых файлов; совпадение добавляется только у файла с точкой.

Повторите условия своего проекта

01

Уточните зависимость

Выберите minimatch 10.2.6 или picomatch 4.0.7 по библиотеке и параметрам целевого приложения. Расширенный синтаксис может трактоваться по-разному.

  • Начальные ! и # обрабатывает выбранный движок.
02

Выберите роль обратной косой черты

POSIX сохраняет экранирование. Режим разделителей Windows заменяет обратные косые черты в шаблоне и путях на /. Исходные значения также остаются в отчёте.

  • Режим Windows не включает игнорирование регистра автоматически.
03

Сохраните актуальный результат

Автопроверка запускается после паузы 350 мс. Отключите её для запуска кнопкой или Ctrl/Cmd + Enter. При изменении ввода экспорт старого результата сразу блокируется.

  • Сначала показаны 50 строк, но JSON содержит все проверенные пути.

Явные настройки и проверяемый отчёт

Версия движка в результатах

Тестер Glob-шаблонов напрямую вызывает выбранный пакет. JSON содержит версию, шаблон, параметры, исходные пути и строки после преобразования разделителей, чтобы условия проверки можно было восстановить.

Символы, альтернативы и каталоги

Проверяйте ? для одного символа, [abc] для набора, ** для каталогов и {js,ts} для расширений. Положительные extglob-выражения вроде @(foo|bar).js тоже обрабатываются библиотекой.

Сравнение только имени файла

Соответствующий параметр позволяет шаблону *.js выбрать src/app.js. Он действует лишь на шаблоны без /. Если в шаблоне указан каталог, сравнивается путь.

Несовпадения тоже сохраняются

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

Границы проверки и формат ввода

Один шаблон без порядка правил
Переносы строк в шаблоне отклоняются. Запятые не разделяют правила: они могут входить в альтернативы в скобках. Последовательные исключения и игнорируемые родительские каталоги Git проверяйте отдельным инструментом Gitignore.
Различия диалектов сохраняются
minimatch считает начальный # комментарием, а ! — отрицанием. picomatch обрабатывает # буквально и может трактовать !(foo).js как отрицательный extglob. Числовые диапазоны тоже могут давать разные результаты.
Windows преобразует только разделители
Каждая обратная косая черта заменяется на / и уже не может одновременно экранировать знак. Инструмент не разрешает .. и не удаляет буквы дисков. Поведение файловой системы не моделируется.
Пробелы входят в имя
Пропускаются только пустые строки. LF, CRLF и CR разделяют кандидатов; пробелы и дубликаты сохраняются. Управляющие символы и некорректный Unicode отклоняются, поэтому имена с переносом строки здесь не представимы.
Ограниченный запуск без частичного успеха
Допускаются 256 единиц UTF-16 на шаблон, 200 путей, 512 единиц на путь и 131 072 суммарно. Для minimatch разрешено 1 000 развёрнутых альтернатив. Через 2 секунды worker завершается, неполный отчёт экспортировать нельзя.
Совпадение не подтверждает существование файла
Сравниваются только введённые строки, без обхода каталогов и загрузки URL. Незакрытая конструкция вроде [ может приниматься библиотекой буквально. Отсутствие совпадения само по себе не означает синтаксическую ошибку.

Вопросы: Тестер Glob-шаблонов

Какие уровни пути охватывает **?

Как отдельный сегмент ** означает ноль или больше каталогов. Поэтому src/**/*.ts может выбрать и src/a.ts, и src/lib/a.ts. Обычная звёздочка остаётся внутри одного сегмента.

Как соотносятся классы символов glob и regex?

[abc] или [0-9] ограничивают выбор одним символом из набора. Это не делает весь glob регулярным выражением. Здесь выполняется выбранная библиотека, а экспорт regex не предусмотрен.

Нужно ли экранировать точки в шаблоне?

Точка расширения в обычном glob означает буквальную точку. Не читайте *.js как regex с .*. Для точки в начале имени дополнительно действует параметр dot, который следует проверять отдельно.

Поддерживаются ли альтернативы в фигурных скобках?

Да, например *.{js,ts}. minimatch также разворачивает file{01..12}.js. У picomatch поведение диапазонов отличается; добавьте крайние ожидаемые значения в список кандидатов.

Можно ли искать подстроку вместо полного пути?

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

Есть пример, который стоит проверить?

Добавьте ещё один граничный случай

Оставьте ожидаемое совпадение и отрицательный пример, измените один параметр и сохраните текущий отчёт.