Convertisseur glob vers regex
Convertissez un motif glob en expression régulière JavaScript dans votre navigateur et testez-la sur de vrais chemins. Vos motifs restent sur votre appareil.
Votre motif glob et les chemins d'exemple que vous testez sont convertis localement dans votre navigateur et ne sont jamais téléversés.
Besoin de déboguer le résultat ? Ouvrez le Testeur de regex.
À propos de Convertisseur glob vers regex
Ce convertisseur glob vers regex transforme un motif de type shell à caractères génériques en une expression régulière JavaScript équivalente que vous pouvez insérer directement dans votre code. Tapez un glob comme *.js, **/*.ts, src/** ou file-{a,b}.txt et l'outil construit la source de la regex ainsi que les drapeaux, en échappant les caractères littéraux comme les points et les parenthèses pour qu'ils correspondent exactement. Activez globstar pour que ** franchisse les séparateurs de chemin, l'expansion d'accolades pour l'alternation {a,b,c}, l'ancrage de chaîne complète avec ^ et $, et un drapeau insensible à la casse. Un testeur en direct exécute votre regex sur une liste de chemins d'exemple, marquant chaque correspondance en vert et chaque absence en rouge, et une légende explique chaque jeton traduit. Tout s'exécute dans votre navigateur, donc les motifs et chemins que vous saisissez restent sur votre appareil.
Fonctionnalités
- Traduit *, ?, ** (globstar), les classes de caractères et les accolades {a,b} en syntaxe regex
- La bascule globstar contrôle si ** et * franchissent le séparateur de chemin /
- Les classes niées [!abc] deviennent [^abc], et les plages comme [0-9] sont conservées
- Échappe les métacaractères de regex qui sont littéraux dans les globs, pour que . + ( ) correspondent exactement
- Ancrage optionnel ^…$ pour des correspondances de chaîne complète et un drapeau i insensible à la casse
- Le testeur en direct vérifie une liste de chemins d'exemple et colore chaque correspondance en vert ou rouge
- Une légende de jetons explique ce que chaque partie du glob est devenue dans la regex
- Copiez la regex sous forme de littéral /motif/drapeaux en un clic
Comment utiliser Convertisseur glob vers regex
- Tapez ou collez un motif glob tel que **/*.ts dans la zone de motif.
- Activez ou désactivez globstar, ancrage, expansion d'accolades et insensibilité à la casse.
- Lisez la source et les drapeaux de la regex générée, et examinez la légende des jetons.
- Saisissez des chemins d'exemple dans le testeur, un par ligne, pour voir lesquels correspondent.
- Cliquez sur Copier la regex pour récupérer le littéral /motif/drapeaux pour votre code.
Exemple
Entrée
src/**/*.{ts,tsx}
Sortie
/^src/(?:.*/)?[^/]*\.(?:ts|tsx)$/
Globstar permet à src/**/ de couvrir les dossiers imbriqués tandis que *.{ts,tsx} reste à la feuille.
Erreurs courantes et dépannage
- *.js correspond de façon inattendue à un chemin imbriqué comme src/app.js. — Gardez globstar activé pour qu'un seul * s'arrête au séparateur / ; utilisez **/*.js lorsque vous voulez les fichiers imbriqués.
- Un motif comme file.txt correspond à filextxt ou fileXtxt. — Cela arrive avec une regex brute ; ce convertisseur échappe déjà le point en \. pour qu'il ne corresponde qu'à un point littéral.
- La regex ne correspond jamais alors que le chemin semble correct. — L'ancrage entoure le motif de ^…$, donc toute la chaîne doit correspondre. Désactivez l'ancrage pour une correspondance de sous-chaîne.
- {a,b} apparaît littéralement dans la sortie au lieu de devenir une alternation. — Activez l'expansion d'accolades ; lorsqu'elle est désactivée, les accolades sont traitées comme des caractères littéraux.
Foire aux questions
- Que signifie ** dans un motif glob ?
- ** est le globstar. Avec l'option globstar activée, il correspond à travers les séparateurs de chemin, donc src/**/*.ts atteint les fichiers de n'importe quel dossier imbriqué, tandis qu'un seul * s'arrête au prochain /.
- Comment les classes de caractères glob sont-elles converties en regex ?
- [abc] correspond directement à une classe de caractères regex, les plages comme [0-9] sont conservées intactes, et une classe glob niée écrite [!abc] est convertie en [^abc] pour correspondre à tout caractère non listé.
- Pourquoi le convertisseur échappe-t-il les points et d'autres caractères ?
- Des caractères tels que . + ( ) | sont littéraux dans un glob mais spéciaux dans une regex. L'outil les échappe en \. \+ et ainsi de suite, pour que la regex résultante corresponde à ces caractères exactement plutôt que comme des opérateurs.
- Prend-il en charge l'expansion d'accolades comme {a,b,c} ?
- Oui. Avec l'expansion d'accolades activée, file-{a,b}.txt devient une alternation qui correspond à file-a.txt ou file-b.txt, et vous pouvez même imbriquer des globs dans les accolades, comme {*.js,*.ts}.
- Puis-je correspondre à une sous-chaîne plutôt qu'au chemin entier ?
- Désactivez l'ancrage de chaîne complète. Les motifs ancrés sont entourés de ^…$ pour que toute la chaîne corresponde ; sans ancrage, la regex peut correspondre n'importe où dans une chaîne plus longue.
- Mon motif glob est-il envoyé à un serveur ?
- Non. La conversion glob vers regex et le testeur en direct s'exécutent tous deux entièrement dans votre navigateur, donc les motifs et chemins d'exemple que vous tapez sont traités localement et restent sur votre appareil.
Outils associés
Tous les outils ArrayKit