Regex-Metazeichen escapen
Fügen Sie file.txt (v1.0+) ein und erhalten Sie file\.txt \(v1\.0\+\): Jeder Punkt, jede Klammer, jedes Pluszeichen und jeder andere Operator bekommt einen Backslash, sodass das Muster Ihren Text Zeichen für Zeichen trifft. 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
- Text
- file.txt (v1.0+)
- Berechnungsmodus
- Escape
- Ergebnis
- file\.txt \(v1\.0\+\)
- Länge
- 21
- Eingabelänge
- 16
- Anzahl maskierter
- 5
Reguläre Ausdrücke behandeln Punkte, Sterne, Klammern und eckige Klammern als Operatoren und nicht als gewöhnliche Zeichen. Wenn Sie einen Dateinamen wie report.v2.pdf ohne Escaping in ein Muster einfügen, bedeuten die Punkte plötzlich «beliebiges Zeichen» und die Übereinstimmung weitet sich still über den gewünschten Namen hinaus aus. Produktcodes, E-Mail-Lokalteile, Shell-Globs in Suchfeldern und vom Benutzer eingegebene Filter bergen dasselbe Risiko. Diese Fähigkeit durchläuft jedes Zeichen, stellt jedem Metazeichen im JavaScript- und PCRE-Stil einen Backslash voran und liefert ein Fragment, das Sie in ein größeres Muster einfügen können — mit der Gewissheit, dass es Zeichen für Zeichen der Originalzeichenkette entspricht. Der umgekehrte Weg entfernt Escapes aus einem rein literalen Muster, sodass Sie den Klartext hinter \. und \( zurückerhalten.
Welche Zeichen müssen escaped werden und warum
Eine Regex-Engine liest manche Symbole als Syntax und nicht als Daten. Die klassische Menge, die für eine wörtliche Übereinstimmung in JavaScript-RegExp-Konstruktoren und PCRE-ähnlichen Engines escaped werden muss, umfasst Punkt, Stern, Plus, Fragezeichen, Zirkumflex, Dollar, geschweifte Klammern, runde Klammern, senkrechten Strich, eckige Klammern und den Backslash selbst. Ohne führenden Backslash matcht ein Punkt jedes einzelne Zeichen, ein Stern wiederholt das vorherige Atom, Klammern öffnen eine Fanggruppe und Zirkumflex oder Dollar verankern den Match.
Wenn Sie nur möchten, dass die Produkt-SKU, der Dateipfad oder die Fehlermeldung des Benutzers genau so erscheinen, wie sie eingegeben wurden, muss jedes dieser Symbole wieder zu Daten werden. Diese Fähigkeit stellt jedem auf dem Escape-Pfad einen einzelnen Backslash voran: file.txt wird zu file\.txt, und ein Versions-Tag wie (v1.0+) wird zu \(v1\.0\+\). Buchstaben, Ziffern, Leerzeichen und die meiste Zeichensetzung außerhalb dieser Menge bleiben unverändert.
Wo literales Regex-Escaping in der Praxis vorkommt
Such- und Filter-UIs wickeln Benutzereingaben oft in dynamische Muster, damit Teilübereinstimmungen in einer Tabelle hervorgehoben werden; vorheriges Escaping verhindert, dass eine einzige Klammer einen Syntaxfehler auslöst oder eine ungewollte Gruppe öffnet. Log-Triage-Werkzeuge machen aus einer kopierten Fehlerzeile ein Suchmuster, das Punkte in Hostnamen oder Versionsnummern nicht als Wildcards behandeln darf. Sicherheitsprüfer wandeln eine verdächtige Zeichenkette in ein literales Fragment um, bevor sie es in einen größeren Allow-List-Ausdruck einbetten, damit Metazeichen den Match nicht aufweiten.
Lokalisierungs- und Content-Pipelines speichern manchmal bereits escapte Fragmente; Unescape stellt das lesbare Token für die Anzeige wieder her, ohne aktive Syntax neu einzuführen. Programmierkurse nutzen einen Live-Escaper, um zu zeigen, warum «beliebiges Zeichen» und «das Zeichen Punkt» in einer Regex-Lektion nicht dieselbe Idee sind. Wenn Sie Matches und Ersetzungen ausführen, ein vorhandenes Muster in Prosa erklären, ein Muster aus einer Beschreibung erzeugen oder eine URL prozentkodieren müssen, sind das getrennte Suchintentionen und Landings — diese Seite deckt nur literales Metazeichen-Escape und -Unescape ab.
Anwendungsfälle
Sichere Benutzerfilter in Such-UIs
Escapen Sie die Eingabe des Benutzers, bevor Sie sie in eine dynamische Regex einbetten, damit Punkte und Klammern nie zu Operatoren oder Syntaxfehlern werden.
Häufige Fragen
Welche Metazeichen escaped dieses Werkzeug?
Die literale Menge im JavaScript-/PCRE-Stil: . * + ? ^ $ { } ( ) | [ ] und den Backslash. Jedes wird mit \ präfixiert, damit das Fragment exakt den Originalzeichen entspricht.
Was geschieht bei ungültiger Eingabe?
Fehlender text, unbekannter mode, zu lange Zeichenketten, abschließender Backslash, Nicht-Meta-Escapes wie \d und nackte Metazeichen auf dem Unescape-Pfad werden abgelehnt. Validierungsfehler werden nicht berechnet.
Führt dies einen regulären Ausdruck aus oder testet ihn?
Nein. Es escaped und unescaped nur für wörtliche Übereinstimmung. Nutzen Sie einen eigenen Regex-Tester, wenn Sie Match-, Replace- oder Gruppenergebnisse brauchen.
Warum findet ein Punkt ohne Backslash mehr als gewünscht?
In einem regulären Ausdruck steht der Punkt für ein beliebiges Zeichen, daher würde report.v2.pdf auch Namen mit anderen Zeichen an diesen Stellen treffen. Mit Backslash wird daraus wieder ein echter Punkt, und die Suche bleibt genau bei Ihrem Text.
Kann ich ein maskiertes Muster wieder in Klartext umwandeln?
Ja, mit der umgekehrten Option, sofern das Muster rein literal ist: Auf jeden Backslash muss ein Metazeichen oder ein weiterer Backslash folgen. Folgen wie \d oder \n und ein einzelner Backslash am Ende werden abgelehnt statt erraten.
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/enc/regex-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"file.txt (v1.0)"}'const res = await fetch("https://api.kit.forhosting.com/enc/regex-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "file.txt (v1.0)"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/regex-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "file.txt (v1.0)"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/regex-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"file.txt (v1.0)"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"file.txt (v1.0)"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/regex-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "file.txt (v1.0)"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.regex_escape",
"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
Das kostenlose Browser-Werkzeug und die kostenpflichtige API teilen einen deterministischen Kern zum veröffentlichten Preis von $0.002 pro erfolgreichem Element.
Was Sie senden und was Sie zurückerhalten
Senden Sie ein Pflicht-String-Feld namens text und optional mode mit escape oder unescape. Fehlt mode, ist escape der Standard, sodass eine einzelne Nutzlast weiterhin nützlich ist. Aliase wie encode und decode werden akzeptiert für Teams, die bereits an andere Kodierungswerkzeuge im Katalog angebunden sind. Escape durchläuft die Eingabe, zählt, wie viele Metazeichen präfixiert wurden, und liefert result als primäres sicheres Musterfragment. Unescape kehrt nur rein literale Muster um: Auf einen Backslash muss ein Metazeichen oder ein weiterer Backslash folgen; ein abschließender alleiniger Backslash, ein Escape wie \d oder \n außerhalb der literalen Menge oder ein nie escaptes nacktes Metazeichen scheitern mit invalid_input und einer englischen Meldung, die den Index nennt. Erfolgsantworten wiederholen mode und den ursprünglichen text, enthalten length und input_length, melden escaped_count, listen die berührten eindeutigen Metazeichen sortiert und hängen eine kurze Standardbezeichnung des JavaScript- und PCRE-Regelsatzes an. Fehlender text, ununterstützte mode-Werte und Zeichenketten über dem dokumentierten Maximum scheitern ebenfalls, ohne Prepaid-Guthaben zu verbrauchen. Der Preis erfolgreicher API-Aufrufe ist die veröffentlichte Basis von $0.002 pro Element.
Wo literales Regex-Escaping in der Praxis vorkommt
Weil diese Fähigkeit eine reine Parse-Engine ist, bleibt der API-Preis bei der veröffentlichten Basis von $0.002 pro erfolgreichem Element und fehlgeschlagene Validierung wird nicht berechnet.
Integrationsbeispiele
Stabile Golden-Muster in der CI
Wandeln Sie Dateinamen und Fehlerzeichenketten in literal-sichere Fragmente um, die Tests einbetten können, ohne Backslashes von Hand zu pflegen.
Klartext aus Fixtures wiederherstellen
Entfernen Sie Escapes aus einem rein literalen Muster in einer Konfigurationsdatei, um den ursprünglichen Produktcode oder Pfad in Admin-Werkzeugen anzuzeigen.
Technische Fragen
Können Sie in beide Richtungen konvertieren?
Ja. mode=escape (Standard; akzeptiert auch encode) macht aus Klartext ein literal-sicheres Muster; mode=unescape (akzeptiert auch decode) kehrt ein rein literales Muster in Klartext um.
Was kostet es?
Das Browser-Werkzeug ist kostenlos und läuft lokal. API-Anfragen nutzen das Prepaid-KIT-Guthaben zu $0.002 pro erfolgreichem Element; ungültige Eingabe wird nicht berechnet.