Glob-Muster zu Regex
Fügen Sie ein Glob-Muster ein und erhalten Sie den passenden regulären Ausdruck: Aus *.js wird ^.*\.js$, mit maskiertem Punkt, der nur einen echten Punkt trifft. Eckige Klammern, Fragezeichen und Backslash-Maskierungen werden ebenfalls übersetzt. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Muster
- *.js
- Regulärer Ausdruck
- ^.*\.js$
- Rumpf des regulären Ausdrucks
- .*\.js
- Anzahl der Platzhalter
- 1
Shell-Glob-Muster sind die Alltagssprache von Dateinamensfiltern: Stern für eine beliebige Zeichenfolge, Fragezeichen für ein einzelnes Zeichen und Klammerklassen für eine Menge oder einen Bereich. Reguläre Ausdrücke nutzen eine andere, dichtere Syntax, und Entwickler benötigen ständig eine getreue Übersetzung, wenn sie einen UI-Filter, ein Test-Harness oder eine Konfigurationsdatei verdrahten, die nur Regex akzeptiert. Dieser Glob-Muster-zu-Regex-Konverter nimmt ein Muster im Shell-Stil entgegen, durchläuft es einmal zeichenweise, ordnet jedes Wildcard dem Regex-Gegenstück zu, escaped jedes Literal, das sonst in einem regulären Ausdruck besonders wäre, und liefert eine stabile Regex-Zeichenkette sowie einen Rumpf ohne Anker, wenn Sie das Fragment einbetten müssen. Der optionale Pfadmodus verhindert, dass Stern und Fragezeichen den Schrägstrich überqueren, sodass segmentweise Regeln dem Verhalten von find und vieler Shells entsprechen.
Wie Shell-Globs auf reguläre Ausdrücke abgebildet werden
Ein Shell-Glob ist eine kompakte Mustersprache zum Abgleich von Dateinamen, nicht zur vollständigen Textanalyse. Das Stern-Wildcard entspricht einer beliebigen Zeichenfolge (einschließlich der leeren Folge); in diesem Konverter ist die Standardabbildung das Regex-Konstrukt Punkt-Stern, während der Pfadmodus den Stern auf eine Zeichenklasse abbildet, die den Schrägstrich ausschließt, gefolgt von einem Stern-Quantor, sodass ein einzelner Stern keine Verzeichnistrenner verschlucken kann. Das Fragezeichen entspricht genau einem Zeichen; der Standardmodus verwendet einen einzelnen Punkt, der Pfadmodus eine Zeichenklasse für ein Zeichen ohne Schrägstrich.
Klammerausdrücke wie a-z oder abc werden zur entsprechenden Regex-Zeichenklasse. Die Shell-Negation nutzt ein Ausrufezeichen unmittelbar nach der öffnenden Klammer; dieses Werkzeug schreibt das als zirkumflex-negierte Klasse um, damit Engines, die nur Zirkumflex-Negation kennen, weiterhin funktionieren. Ein Zirkumflex direkt nach der öffnenden Klammer wird ebenfalls als Negation akzeptiert.
Ein Backslash vor einem Zeichen erzwingt die Behandlung als Literal, auch wenn es Stern, Fragezeichen oder öffnende Klammer ist. Jedes gewöhnliche Zeichen, das in regulären Ausdrücken besonders ist — Punkt, Plus, Klammern, geschweifte Klammern, Pipe, Zirkumflex, Dollar und Verwandte — wird escaped, damit ein Dateinamensfragment wie report.v2 nicht versehentlich report gefolgt von einem beliebigen Zeichen gefolgt von v2 bedeutet. Brace-Expansion der Form geschweifte Klammer a Komma b geschweifte Klammer ist Shell-Vorverarbeitung, kein Glob-Matching; geschweifte Klammern bleiben daher Literale in der Ausgabe-Regex und werden keine Alternationsgruppen.
Wann sich die Umwandlung in Regex lohnt
Frontend-Produktfilter starten oft als benutzerfreundliche Globs (Stern für ein beliebiges Suffix, Fragezeichen für einen Platzhalter), während Suchindex oder Datenbank nur reguläre Ausdrücke akzeptieren; die Umwandlung am Rand hält die Produktsprache einfach und die Abfrage-Engine korrekt. Test-Suiten und CI-Skripte, die Include- und Exclude-Globs akzeptieren, können diese Globs einmal zu Regex-Objekten kompilieren und sie über Tausende Pfadprüfungen wiederverwenden, ohne Shell-Regeln ad hoc neu zu implementieren. Security-Review und Code-Suche müssen manchmal zeigen, was ein Legacy-Glob in Regex-Form wirklich bedeutet, bevor eine Regeländerung freigegeben wird.
Fehlgeschlagene Validierung wird nicht berechnet. Halten Sie Muster kurz, pinnen Sie die gelieferten Regex-Strings in Tests, und Sie erhalten reproduzierbare Übersetzungen für Widgets, SDKs und Edge-Worker, ohne selbst eine Shell oder eine sprachspezifische fnmatch-Bibliothek aufzusetzen.
Anwendungsfälle
UI-Filter in Glob, Engines die Regex brauchen
Akzeptieren Sie nutzerseitige Muster wie *.png oder report-????.csv und kompilieren Sie sie zu verankerten Regexes für Client- oder Server-Matching.
Dokumentation und Lehre von Wildcards
Zeigen Sie nebeneinander, was aus einem Shell-Glob als regulärer Ausdruck wird, damit Lernende Escapes, Klassen und Anker klar sehen.
Häufige Fragen
Welche Wildcards werden unterstützt?
Stern (*) für beliebige Sequenzen, Fragezeichen (?) für ein Zeichen, Klammerklassen ([abc], [a-z], [! x] oder [^x] zur Negation) und Backslash-Escapes des nächsten Zeichens. Brace-Expansion gilt nicht als Wildcard.
Warum wird der Punkt im Dateinamen maskiert?
In einem regulären Ausdruck steht ein einzelner Punkt für ein beliebiges Zeichen, report.v2 träfe also auch report, gefolgt von irgendeinem Zeichen und v2. Jedes Sonderzeichen wird maskiert, damit wörtliche Teile wörtlich bleiben.
Was ändert der Pfadmodus?
Im Pfadmodus stoppen Stern und Fragezeichen am Schrägstrich, ein einzelner Stern verschluckt also keine Ordnertrenner, so wie bei find und vielen Shells. Ohne den Modus passen beide auf jedes Zeichen, Schrägstriche eingeschlossen.
Werden geschweifte Klammern wie {a,b} aufgelöst?
Nein. Geschweifte Klammern sind eine Vorverarbeitung der Shell, kein Teil des Glob-Musters, und bleiben deshalb wörtliche Zeichen im regulären Ausdruck, statt zu Alternativen zu werden.
Kann ich den Ausdruck ohne Anker am Anfang und Ende bekommen?
Ja. Standardmäßig steht das Ergebnis zwischen ^ und $, damit es den ganzen Text abdeckt, Sie können aber auch nur den Kern nehmen, bereit zum Einbau in ein größeres Muster.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/glob-to-regex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pattern":"*.js"}'const res = await fetch("https://api.kit.forhosting.com/dev/glob-to-regex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pattern": "*.js"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/glob-to-regex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pattern": "*.js"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/glob-to-regex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pattern":"*.js"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pattern":"*.js"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/glob-to-regex", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"pattern": "*.js"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.glob_to_regex",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Eingabefelder, Antwortform und Fehlermodi
Zeichenklassen dürfen eine wörtliche schließende Klammer als erstes Mitglied nach dem Öffner oder Negationsmarker enthalten, wie in POSIX- und Shell-Praxis üblich. Ein alleinstehender abschließender Backslash wird als literaler Backslash behandelt, nicht als unvollständiges Escape. Senden Sie einen JSON-Body mit dem Pflicht-Stringfeld pattern (Aliasse glob, pattern_glob, wildcard), das den zu übersetzenden Shell-Glob enthält. Das optionale Boolean path_mode (Standard false) aktiviert schrägstrichbewusste Stern- und Fragezeichen. Das optionale Boolean anchored (Standard true) umschließt den fertigen Ausdruck mit Zirkumflex und Dollar, sodass die Regex die gesamte Kandidatenzeichenkette abgleicht; setzen Sie anchored auf false, wenn Sie nur den Rumpf zur Einbettung in ein größeres Muster brauchen. Bei Erfolg spiegelt die Antwort pattern, path_mode und anchored; liefert regex (den vollständigen Ausdruck für eine Regex-Engine); liefert regex_body (dieselbe Übersetzung ohne äußere Anker); meldet wildcard_count, damit Sie sehen, wie viele Stern-, Fragezeichen- oder Klassentoken gefunden wurden; und enthält eine kurze formula-Zeichenkette, die die geltende Abbildung zusammenfasst. Leeres pattern, Nicht-String-pattern, Muster länger als zweitausendachtundvierzig Zeichen, ungeschlossene Zeichenklassen, leere Klassen und invertierte Bereiche wie z-a scheitern mit invalid_input und werden nicht berechnet.
Integrationsbeispiele
CI-Include- und Exclude-Regeln
Übersetzen Sie Projekt-Globs in path_mode-Regexes, damit Test-Runner und Linter dieselben segmentbewussten Regeln anwenden, ohne Globs bei jeder Datei neu zu parsen.
Technische Fragen
Wie wandle ich ein Glob-Muster in einen regulären Ausdruck um?
Senden Sie per POST einen JSON-Body mit pattern gleich Ihrem Shell-Glob (zum Beispiel *.js). Die API liefert regex (standardmäßig verankert) und regex_body. Setzen Sie path_mode auf true, wenn * und ? den Schrägstrich nicht matchen sollen.
Was ändert path_mode?
Wenn path_mode true ist, wird * zu [^/]* und ? zu [^/], sodass kein Wildcard einen Verzeichnis-Trenner überquert. Wenn false (Standard), dürfen sie jedes Zeichen einschließlich Schrägstrich matchen.
Warum erhielt ich invalid_input?
Häufige Ursachen: fehlendes oder leeres pattern, ungeschlossene Klasse '[...]', leere Klasse, invertierter Bereich in Klammern, Nicht-String-pattern oder Muster länger als 2048 Zeichen. Diese Fehler werden nicht berechnet.
Was kostet der Glob-Muster-zu-Regex-Konverter?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen das vorausbezahlte KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.