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
- Traduz *, ?, ** (globstar), classes de caractere e chaves {a,b} para a sintaxe regex
- O botão globstar controla se ** e * atravessam o separador de caminho /
- Classes negadas [!abc] viram [^abc], e intervalos como [0-9] são preservados
- Escapa metacaracteres de regex que são literais em globs, então . + ( ) correspondem exatamente
- Ancoragem opcional ^…$ para correspondências de string completa e uma flag i de não diferenciar maiúsculas de minúsculas
- Testador ao vivo verifica uma lista de caminhos de exemplo e colore cada correspondência de verde ou vermelho
- Legenda de tokens explica o que cada parte do glob virou na regex
- Copie a regex como um literal /padrão/flags com um clique
Como usar Glob para Regex
- Digite ou cole um padrão glob como **/*.ts na caixa de padrão.
- Ative ou desative globstar, ancoragem, expansão de chaves e não diferenciação de maiúsculas e minúsculas.
- Leia a fonte da regex gerada e as flags, e revise a legenda de tokens.
- Digite caminhos de exemplo no testador, um por linha, para ver quais correspondem.
- 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
- *.js corresponde inesperadamente a um caminho aninhado como src/app.js. — Mantenha o globstar ativado para que um único * pare no separador /; use **/*.js quando quiser arquivos aninhados.
- Um padrão como file.txt corresponde a filextxt ou fileXtxt. — Isso acontece com uma regex pura; este conversor já escapa o ponto para \. para que ele corresponda apenas a um ponto literal.
- A regex nunca corresponde mesmo com o caminho parecendo certo. — A ancoragem envolve o padrão em ^…$, então a string inteira precisa corresponder. Desative a ancoragem para correspondência de substring.
- {a,b} aparece literalmente na saída em vez de virar uma alternância. — Ative a expansão de chaves; com ela desativada, as chaves são tratadas como caracteres literais.
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