Conversor de Glob para Regex

Converta um padrão glob em uma expressão regular JavaScript no seu navegador e teste-o contra caminhos reais. Seus padrões permanecem no seu dispositivo.

Seu padrão glob e os caminhos de exemplo que você testa são convertidos localmente no seu navegador e nunca são enviados.

Precisa depurar o resultado? Abra o Testador de Regex.

Sobre Glob para Regex

Este conversor de glob para regex transforma um padrão de curinga no estilo shell em uma expressão regular JavaScript equivalente que você coloca direto no código. Digite um glob como *.js, **/*.ts, src/** ou file-{a,b}.txt e a ferramenta monta a fonte da regex mais as flags, escapando caracteres literais como pontos e parênteses para que correspondam exatamente. Ative o globstar para que ** atravesse separadores de caminho, a expansão de chaves para alternância {a,b,c}, a ancoragem de string completa com ^ e $ e uma flag de não diferenciar maiúsculas de minúsculas. Um testador ao vivo executa sua regex contra uma lista de caminhos de exemplo, marcando cada correspondência em verde e cada falha em vermelho, e uma legenda explica cada token traduzido. Tudo roda no seu navegador, então os padrões e caminhos que você digita permanecem no seu dispositivo.

Recursos

Como usar Glob para Regex

  1. Digite ou cole um padrão glob como **/*.ts na caixa de padrão.
  2. Ative ou desative globstar, ancoragem, expansão de chaves e não diferenciação de maiúsculas e minúsculas.
  3. Leia a fonte da regex gerada e as flags, e revise a legenda de tokens.
  4. Digite caminhos de exemplo no testador, um por linha, para ver quais correspondem.
  5. Clique em Copiar regex para pegar o literal /padrão/flags para o seu código.

Exemplo

Entrada

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

Saída

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

O globstar permite que src/**/ atravesse pastas aninhadas enquanto *.{ts,tsx} fica na folha.

Erros comuns e solução de problemas

Perguntas frequentes

O que ** significa em um padrão glob?
** é o globstar. Com a opção de globstar ativada ele corresponde através de separadores de caminho, então src/**/*.ts alcança arquivos em qualquer pasta aninhada, enquanto um único * para no próximo /.
Como as classes de caractere do glob são convertidas para regex?
[abc] mapeia diretamente para uma classe de caractere regex, intervalos como [0-9] são mantidos intactos, e uma classe glob negada escrita como [!abc] é convertida para [^abc] para que corresponda a qualquer caractere não listado.
Por que o conversor escapa pontos e outros caracteres?
Caracteres como . + ( ) | são literais em um glob mas especiais em uma regex. A ferramenta os escapa para \. \+ e assim por diante, para que a regex resultante corresponda a esses caracteres exatamente em vez de tratá-los como operadores.
Ele suporta expansão de chaves como {a,b,c}?
Sim. Com a expansão de chaves ativada, file-{a,b}.txt vira uma alternância que corresponde a file-a.txt ou file-b.txt, e você pode até aninhar globs dentro das chaves, como {*.js,*.ts}.
Posso corresponder a uma substring em vez do caminho inteiro?
Desative a ancoragem de string completa. Padrões ancorados são envolvidos em ^…$ para que a string inteira precise corresponder; sem ancoragem, a regex pode corresponder em qualquer lugar dentro de uma string maior.
Meu padrão glob é enviado para um servidor?
Não. A conversão de glob para regex e o testador ao vivo rodam ambos inteiramente no seu navegador, então os padrões e caminhos de exemplo que você digita são processados localmente e permanecem no seu dispositivo.

Ferramentas relacionadas

Todas as ferramentas de ArrayKit