ForHosting KIT · Entwickler-Tools

Benannte Fanggruppen aus einem Regex-Muster extrahieren

Fügen Sie ein Muster wie (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) ein und erhalten Sie seine benannten Gruppen in Reihenfolge: year, month und day. Das Muster wird geprüft, aber nie ausgeführt, bereit für Dokumentation oder Ersetzungsvorlagen. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Muster
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
Erhalten Sie
Benannte Gruppen
year, month, day
Anzahl
3

<name>...) gegenüber rein nummerierten Gruppen.

Wozu benannte Fanggruppen dienen

Eine benannte Fanggruppe beginnt mit einer öffnenden Klammer, einem Fragezeichen und einem Namen zwischen Kleiner- und Größerzeichen, danach folgen das Teilmuster und eine schließende Klammer, wie in (?<year>\d{4}). Bei einem Treffer werden diese Namen zu lesbaren Bezeichnungen: Der Code liest das Jahr über seinen Namen, statt zu raten, welche nummerierte Gruppe es enthält. Deshalb benennen lange Muster in gemeinsamen Bibliotheken, Formularauswertungen und Validierungen ihre Gruppen häufig, damit jeder, der das Muster übernimmt, sieht, was jeder Teil erfasst.

Die Namen auflisten, ohne etwas zu suchen

Bevor Sie Ersetzungsvorlagen schreiben, Typen für eine Validierung erzeugen oder Platzhalter wie $<name> in einer Bearbeitungsmaske anbieten, brauchen Sie die genaue Liste der Namen, die das Muster definiert. Das Werkzeug prüft, ob das Muster gültig ist, und liest die Namen von links nach rechts in der Reihenfolge ihrer Deklaration. Unbenannte und nicht erfassende Gruppen bleiben außen vor, Lookbehind-Prüfungen werden nicht mit Namen verwechselt, und der Inhalt eckiger Klammern erzeugt nie falsche Einträge. Ein Muster ohne benannte Gruppen liefert einfach eine leere Liste.

Was benannte Fanggruppen sind und warum sie zu listen hilft

In ECMAScript-Regulären Ausdrücken wird eine benannte Fanggruppe als öffnende Klammer, Fragezeichen, Kleiner-als, ein Bezeichner, Größer-als, das Untermuster und die schließende Klammer geschrieben: zum Beispiel open-paren question-mark less-than year greater-than backslash-d open-brace four close-brace close-paren. Wenn ein Treffer gelingt, legt die Engine diese Namen am groups-Objekt frei, sodass Aufrufer match.groups.year statt match[1] lesen. Die Namen ohne Treffer-Lauf aufzulisten ist nützlich, sobald Sie ein Muster dokumentieren, TypeScript-Typen für einen Validator erzeugen oder eine Oberfläche bauen, die Ersetzungstoken wie dollar-less-than name greater-than anbietet.

Unbenannte fangende Gruppen und nicht fangende Gruppen werden für die Namensliste ignoriert. Lookbehind-Assertionen, die mit question-mark less-than equals oder question-mark less-than exclamation beginnen, gelten nicht als benannte Gruppen. Zeichenklassen und maskierte Klammern erzeugen nie Fehlalarme, sodass eine Literalkette mit den Zeichen eines Öffners benannter Gruppen in eckigen Klammern nicht im Ergebnis erscheint.

Regex-Bibliotheken autodokumentieren

Erzeugen Sie eine Tabelle der Bezeichner benannter Fanggruppen für jedes Muster einer gemeinsamen Bibliothek, damit die Dokumentation mit dem Quellcode synchron bleibt.

Werden Lookbehinds als benannte Gruppen behandelt?

Nein. Assertionen der Form (? <=...) oder (? <!...) werden übersprungen. Nur Fanggruppen (? <name>...) erscheinen in der Liste.

Was passiert, wenn das Muster keine benannten Gruppen hat?

Sie erhalten eine leere Liste und die Anzahl null, keinen Fehler. Abgelehnt wird nur ein Muster, das die Regex-Engine selbst nicht akzeptiert, etwa wegen einer kaputten Syntax.

Wird das Muster auf einen Beispieltext angewendet?

Nein. Das Werkzeug prüft nur, ob das Muster gültig ist, und liest die Namen von links nach rechts in der Reihenfolge ihrer Deklaration. Es wird nichts gesucht, daher brauchen Sie keinen Beispieltext.

Dürfen zwei Gruppen denselben Namen tragen?

Nein. Aktuelle Engines lehnen doppelte Namen schon beim Kompilieren des Musters ab, deshalb meldet das Werkzeug das Problem mit einer klaren Nachricht, statt eine Liste mit demselben Namen zweimal auszugeben.

Zählen unbenannte Gruppen oder Zeichen in eckigen Klammern mit?

Nein. Gewöhnliche nummerierte Gruppen und nicht erfassende Gruppen bleiben außen vor, und Zeichen in eckigen Klammern oder maskierte Klammern erzeugen nie einen falschen Namen, auch wenn sie wie der Anfang einer Gruppe aussehen.

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.

POSThttps://api.kit.forhosting.com/dev/regex-named-group-extract

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev/regex-named-group-extract \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pattern":"(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"}'
{
  "pattern": "(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.regex_named_group_extract",
  "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.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Benannte Fanggruppen verwandeln undurchsichtige Trefferindizes in lesbare Feldnamen wie year, month und email_local; deshalb bevorzugen moderne Regex-Bibliotheken und API-Validatoren (? Wenn Sie ein langes Muster erben, Dokumentation erzeugen oder einen Formularparser anbinden, brauchen Sie oft die Liste der Namen, die das Muster tatsächlich definiert, bevor Sie Ersetzungsvorlagen schreiben oder Gruppen nach JSON abbilden. Diese Fähigkeit akzeptiert einen einzigen ECMAScript-Regex-Körper, prüft, dass das Muster kompiliert, und liefert die geordnete Liste der Bezeichner benannter Fanggruppen, die es deklariert. Muster ohne benannte Gruppen gelingen mit einer leeren Liste statt eines Fehlers; nur Syntax, die die Engine ablehnt, schlägt mit invalid_input fehl.

Was benannte Fanggruppen sind und warum sie zu listen hilft

Dieser Endpoint führt die Regex nicht gegen Beispieltext aus; er validiert nur das Muster und extrahiert die Namen in Definitionsreihenfolge von links nach rechts. Doppelte Namen scheitern zur Compile-Zeit in aktuellen ECMAScript-Engines und erscheinen als invalid_input mit klarer Meldung.

Eingabevertrag, Antwortform und Fehlerverhalten

Der Wert muss eine nicht leere Zeichenkette von höchstens zehntausend Zeichen sein. Leeres Muster, fehlendes pattern oder ein Nicht-String-Typ scheitern an der Validierung vor dem Kompilieren. Senden Sie per POST einen JSON-Körper mit einem Pflicht-Stringfeld: pattern, der Körper des regulären Ausdrucks ohne umschließende Schrägstriche. Bei Erfolg spiegelt der Körper pattern, liefert named_groups als String-Array in Definitionsreihenfolge, count als Arraylänge und has_named_groups als praktischen Booleschen Schalter. Beispiel: das Datummuster mit drei benannten Gruppen für year, month und day ergibt count drei und has_named_groups true. Ein einfacher Wortmatcher wie backslash-w plus ohne benannte Gruppen ergibt ein leeres named_groups-Array, count null und has_named_groups false—trotzdem ein erfolgreicher Aufruf, weil das Muster gültig ist. Nutzen Sie das kostenlose Browser-Werkzeug zur schnellen Prüfung; nutzen Sie die API, wenn CI-Pipelines oder CMS-Plugins eine stabile, maschinenlesbare Liste der Gruppennamen für jedes Muster in einer Konfigurationsdatei brauchen.

Wo das Extrahieren benannter Gruppen echten Nutzen bringt

Dokumentationsseiten und Styleguides, die Regex-Bibliotheken veröffentlichen, können automatisch eine Tabelle der Gruppennamen pro Muster erzeugen, ohne parallel eine handgepflegte Liste zu führen, die abdriftet. Formular-Builder und Log-Parser, die nutzerseitige Muster annehmen, können Vorlagen ablehnen, die dollar-less-than name greater-than-Token referenzieren, die im Muster fehlen, und so Laufzeitüberraschungen reduzieren. Fehlgeschlagene Validierung wird nicht berechnet. Sicherheits-Review-Checklisten fragen oft, welche Felder eine Validierungs-Regex fängt; die Namensliste von einer kleinen Parse-API zurückzugeben ist günstiger, als für jeden Pull Request einen vollen Regex-Debugger aufzustellen.

Ersetzungsvorlagen prüfen

Bevor Sie eine replace-Regel mit $<name>-Token speichern, bestätigen Sie, dass jeder Name in der named_groups-Liste des Musters vorkommt.

CI-Prüfungen für Formulare und Logs

Lassen Sie eine Pipeline scheitern, wenn eine Konfigurations-Regex behauptet, email oder order_id zu fangen, aber keine passende benannte Gruppe definiert.

Wie extrahiere ich benannte Fanggruppen aus einer Regex?

Senden Sie einen JSON-Körper mit pattern als ECMAScript-Regex-Körper (ohne Schrägstriche). Die API liefert named_groups in Definitionsreihenfolge sowie count und has_named_groups.

Was passiert bei einem ungültigen Muster?

Die Aufgabe scheitert mit invalid_input und einer Meldung, die den Engine-Fehler enthält. Ungültige Muster werden nicht berechnet.

Liefert ein Muster ohne benannte Gruppen einen Fehler?

Nein. Gültige Muster mit nur nummerierten oder nicht fangenden Gruppen gelingen mit leerem named_groups-Array und count null.

Was kostet das Extrahieren benannter Regex-Gruppen?

Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen das vorausbezahlte KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.

Vollständige KIT-Dokumentation lesen →