Конвертер glob в regex

Преобразуйте glob-шаблон в регулярное выражение JavaScript в вашем браузере и протестируйте его на реальных путях. Ваши шаблоны остаются на вашем устройстве.

Ваш glob-шаблон и тестируемые образцы путей преобразуются локально в вашем браузере и никогда не загружаются.

Нужно отладить результат? Откройте тестер regex.

Об инструменте Glob в regex

Этот конвертер glob в regex превращает шаблон с подстановочными знаками в стиле командной оболочки в эквивалентное регулярное выражение JavaScript, которое можно вставить прямо в код. Введите glob, например *.js, **/*.ts, src/** или file-{a,b}.txt, и инструмент построит исходник regex с флагами, экранируя литеральные символы вроде точек и скобок, чтобы они совпадали в точности. Включите globstar, чтобы ** пересекал разделители пути, раскрытие фигурных скобок для альтернации {a,b,c}, привязку ко всей строке через ^ и $ и флаг без учёта регистра. Живой тестер прогоняет ваш regex по списку образцов путей, помечая каждое совпадение зелёным, а каждый промах — красным, а легенда объясняет каждый переведённый токен. Всё работает в вашем браузере, поэтому введённые шаблоны и пути остаются на вашем устройстве.

Возможности

Как использовать Glob в regex

  1. Введите или вставьте glob-шаблон, например **/*.ts, в поле шаблона.
  2. Включите или выключите globstar, привязку, раскрытие фигурных скобок и нечувствительность к регистру.
  3. Прочитайте сгенерированный исходник regex и флаги и просмотрите легенду токенов.
  4. Введите образцы путей в тестере, по одному на строку, чтобы увидеть, какие совпадают.
  5. Нажмите «Копировать regex», чтобы получить литерал /pattern/flags для вашего кода.

Пример

Ввод

src/**/*.{ts,tsx}

Результат

/^src/(?:.*/)?[^/]*\.(?:ts|tsx)$/

Globstar позволяет src/**/ охватить вложенные папки, а *.{ts,tsx} остаётся на листе.

Частые ошибки и устранение неполадок

Часто задаваемые вопросы

Что означает ** в glob-шаблоне?
** — это globstar. С включённой опцией globstar он совпадает через разделители пути, поэтому src/**/*.ts достаёт файлы в любой вложенной папке, тогда как одиночная * останавливается на следующем /.
Как классы символов glob преобразуются в regex?
[abc] напрямую отображается в класс символов regex, диапазоны вроде [0-9] сохраняются как есть, а отрицаемый класс glob, записанный [!abc], преобразуется в [^abc], чтобы совпадать с любым символом не из списка.
Почему конвертер экранирует точки и другие символы?
Символы вроде . + ( ) | в glob литеральны, но в regex особые. Инструмент экранирует их в \. \+ и так далее, чтобы итоговый regex совпадал с этими символами в точности, а не как с операторами.
Поддерживает ли он раскрытие фигурных скобок вроде {a,b,c}?
Да. С включённым раскрытием фигурных скобок file-{a,b}.txt становится альтернацией, совпадающей с file-a.txt или file-b.txt, и можно даже вкладывать glob внутрь скобок, например {*.js,*.ts}.
Могу ли я искать подстроку вместо всего пути?
Выключите привязку ко всей строке. Привязанные шаблоны оборачиваются в ^…$, поэтому должна совпадать вся строка; без привязки regex может совпадать где угодно внутри более длинной строки.
Отправляется ли мой glob-шаблон на сервер?
Нет. И преобразование glob в regex, и живой тестер работают полностью в вашем браузере, поэтому введённые шаблоны и образцы путей обрабатываются локально и остаются на вашем устройстве.

Связанные инструменты

Все инструменты ArrayKit