Конвертер 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 по списку образцов путей, помечая каждое совпадение зелёным, а каждый промах — красным, а легенда объясняет каждый переведённый токен. Всё работает в вашем браузере, поэтому введённые шаблоны и пути остаются на вашем устройстве.
Возможности
- Переводит *, ?, ** (globstar), классы символов и фигурные скобки {a,b} в синтаксис regex
- Переключатель globstar управляет тем, пересекают ли ** и * разделитель пути /
- Отрицаемые классы [!abc] становятся [^abc], а диапазоны вроде [0-9] сохраняются
- Экранирует метасимволы regex, которые в glob литеральны, поэтому . + ( ) совпадают в точности
- Необязательная привязка ^…$ для совпадений по всей строке и флаг без учёта регистра i
- Живой тестер проверяет список образцов путей и окрашивает каждое совпадение зелёным или красным
- Легенда токенов объясняет, во что превратилась каждая часть glob в regex
- Скопируйте regex как литерал /pattern/flags в один клик
Как использовать Glob в regex
- Введите или вставьте glob-шаблон, например **/*.ts, в поле шаблона.
- Включите или выключите globstar, привязку, раскрытие фигурных скобок и нечувствительность к регистру.
- Прочитайте сгенерированный исходник regex и флаги и просмотрите легенду токенов.
- Введите образцы путей в тестере, по одному на строку, чтобы увидеть, какие совпадают.
- Нажмите «Копировать regex», чтобы получить литерал /pattern/flags для вашего кода.
Пример
Ввод
src/**/*.{ts,tsx}
Результат
/^src/(?:.*/)?[^/]*\.(?:ts|tsx)$/
Globstar позволяет src/**/ охватить вложенные папки, а *.{ts,tsx} остаётся на листе.
Частые ошибки и устранение неполадок
- *.js неожиданно совпадает с вложенным путём вроде src/app.js. — Держите globstar включённым, чтобы одиночная * останавливалась на разделителе /; используйте **/*.js, когда нужны вложенные файлы.
- Шаблон вроде file.txt совпадает с filextxt или fileXtxt. — Так бывает с «сырым» regex; этот конвертер уже экранирует точку в \., поэтому она совпадает только с буквальной точкой.
- Regex никогда не совпадает, хотя путь выглядит правильно. — Привязка оборачивает шаблон в ^…$, поэтому должна совпадать вся строка. Выключите привязку для поиска по подстроке.
- {a,b} появляется в выводе буквально вместо альтернации. — Включите раскрытие фигурных скобок; при выключенном — скобки трактуются как литеральные символы.
Часто задаваемые вопросы
- Что означает ** в 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, и живой тестер работают полностью в вашем браузере, поэтому введённые шаблоны и образцы путей обрабатываются локально и остаются на вашем устройстве.
Связанные инструменты
- Тестер regex — Тестируйте регулярные выражения в реальном времени: совпадения, группы и флаги.
- Сравнить текст — Сравнивайте два текста построчно и видите добавления и удаления.
- Генератор .gitignore — Создайте .gitignore из распространённых шаблонов для языков и инструментов.
- Конвертер регистра — Преобразуйте текст между camelCase, snake_case, kebab-case, PascalCase и другими.
- Экранирование HTML — Экранируйте и разэкранируйте специальные символы и сущности HTML.
Все инструменты ArrayKit