ForHosting KIT · Text & KI

Zeilen mit Regex extrahieren

In einem Protokoll mit INFO-, WARN- und ERROR-Zeilen behält der Ausdruck ^ERROR\b nur die 2 Fehlerzeilen von 4, unverändert und in Reihenfolge. Jede Zeile wird einzeln geprüft, ein Platzhalter greift also nie auf die nächste über. 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
^ERROR\b
Erhalten Sie
Ergebnis
ERROR database unavailable ERROR request timed out
Treffer
2
Zeilen insgesamt
4

Extrahieren Sie Zeilen anhand eines regulären Ausdrucks, wenn ein langes Protokoll, ein Bericht, ein Konfigurationsauszug oder strukturierter Text weit mehr Informationen enthält, als Sie benötigen. Übergeben Sie Text, ein JavaScript-Regex-Muster und optionale Flags; die Funktion prüft jede vollständige Zeile und gibt ausschließlich Treffer in ihrer ursprünglichen Reihenfolge zurück. Sie verarbeitet LF-, CRLF- und CR-Zeilenenden, bewahrt den Inhalt ausgewählter Zeilen und meldet sowohl Trefferzahl als auch Gesamtzahl. Die Verarbeitung ist deterministisch und lokal, ohne Modell oder Netzwerkabhängigkeit.

Formulieren Sie ein Muster für die wirklich benötigten Zeilen

Das Muster wird getrennt auf jede vollständige Zeile angewendet, weshalb Anker besonders hilfreich sind. Beginnen Sie mit ^, wenn das entscheidende Element am Zeilenanfang stehen muss, und schließen Sie mit $, wenn die letzten Zeichen maßgeblich sind. Beispielsweise wählt ^ERROR\b übliche Fehlereinträge aus, ohne eine Bezeichnung wie ERRORS zu akzeptieren, während \.csv$ Dateinamen mit dieser Erweiterung behält.

Geben Sie den Quelltext des regulären Ausdrucks ohne Schrägstrichnotation ein: Verwenden Sie ^WARN statt /^WARN/. Optionale JavaScript-Flags werden separat angegeben. Das Flag i ignoriert Groß- und Kleinschreibung; weitere Flags behalten ihre JavaScript-Standardbedeutung.

Jede ausgewählte Zeile wird unverändert und in ihrer relativen Position zurückgegeben. Zeilen ohne Treffer entfallen, doch das Werkzeug kürzt, überschreibt, sortiert, dedupliziert und interpretiert Inhalte nicht. Dieser eng gefasste Vertrag eignet sich für Automatisierung, weil das Ergebnis eine berechenbare Teilmenge der Quelle und keine Zusammenfassung ist, die wichtige Belege auslassen könnte.

Filtern Sie Protokolle und strukturierte Texte ohne Verfälschung

Zeilenweises Filtern passt zu Anwendungsprotokollen, Befehlsausgaben, getrennten Exporten, Testberichten und Konfigurationsdateien. Supportfachkräfte können Anfragekennungen, Statuscodes oder Schweregrade isolieren, bevor sie einen knappen Auszug an einen Vorfall anhängen. Entwicklungsteams können fehlgeschlagene Assertions aus langen Testläufen behalten.

Eine Betriebspipeline kann Einträge auswählen, deren Zeitstempel, Hostnamen oder Komponentenpräfixe einer bekannten Konvention entsprechen. Weil die Prüfung jeweils nur eine Zeile umfasst, greift ein Platzhalter nicht versehentlich auf den nächsten Datensatz über. LF, Windows-CRLF und einzelnes CR werden erkannt; die Ausgabe verwendet stabile LF-Trenner, damit nachfolgende Vergleiche plattformübergreifend gleich funktionieren.

Leere Zeilen lassen sich gezielt mit ^$ auswählen. Ein abschließender Umbruch gilt als Abschlusszeichen und nicht als zusätzlicher leerer Datensatz. Neben dem verbundenen Ergebnis enthält die Antwort ein Array ausgewählter Zeilen sowie Treffer- und Gesamtzahlen.

Skripte erhalten dadurch unmittelbar nutzbare Daten und Prüfmöglichkeiten, ohne die Ausgabe erneut zerlegen zu müssen.

Validieren Sie Muster und binden Sie Ergebnisse sicher ein

Die Funktion weist fehlenden oder leeren Text, fehlende oder leere Muster, nicht unterstützte oder doppelte Flags, unverträgliche Unicode-Modi und Ausdrücke zurück, die die JavaScript-Laufzeit nicht kompilieren kann. Dadurch bleibt ein Tippfehler in einer automatisierten Regel von einem gültigen Muster ohne Treffer unterscheidbar. Eine erfolgreiche Antwort ohne Treffer ist weiterhin aussagekräftig: Sie enthält ein leeres Ergebnis, ein leeres Zeilenarray, einen Trefferzähler von null und die Anzahl geprüfter Zeilen.

Größenlimits für Text und Muster halten den Speicherbedarf sowohl im Edge-Worker als auch im kostenlosen Browser vorhersehbar. Testen Sie neue Ausdrücke vor der Einbindung mit repräsentativen Beispielen, setzen Sie Anker, sofern das Format dies erlaubt, und vermeiden Sie unnötig mehrdeutige verschachtelte Wiederholungen. Ohne Netzwerk, Zufall, Uhr oder Sprachmodell erzeugen gleiche Eingaben immer gleiche Ausgaben.

Fehlereinträge isolieren

Behalten Sie vor einer Vorfallprüfung nur Zeilen, die mit einem Fehlerschweregrad beginnen oder eine bestimmte Anfragekennung enthalten.

Strukturierte Datensätze auswählen

Extrahieren Sie Zeilen, deren Präfixe, Statusfelder, Dateinamen oder Kennungen einem präzisen regulären Ausdruck entsprechen.

Testausgaben reduzieren

Bewahren Sie fehlgeschlagene Assertions und Diagnosemarkierungen aus langen Build-Protokollen in ihrer ursprünglichen Reihenfolge auf.

Muss ich den regulären Ausdruck in Schrägstriche setzen?

Nein. Senden Sie nur das Muster, beispielsweise ^ERROR\b. Flags wie i gehören in das separate Flag-Feld.

Wird das Muster pro Zeile oder auf den gesamten Text angewendet?

Es wird unabhängig auf jede vollständige Zeile angewendet. Bei einem Treffer an beliebiger Stelle erscheint die Zeile genau einmal.

Werden passende Zeilen verändert?

Nein. Zeichen und Reihenfolge bleiben erhalten. Lediglich die Trenner im verbundenen Ergebnis werden auf LF vereinheitlicht.

Wie hoch sind die Kosten?

Dieselbe deterministische Filterung können Sie im Browser kostenlos ausführen.

Wie ignoriere ich Groß- und Kleinschreibung?

Fügen Sie die Option i hinzu, die Sie getrennt vom Ausdruck angeben. Damit behält ^error auch Zeilen, die mit ERROR oder Error beginnen. Die übrigen üblichen Optionen regulärer Ausdrücke behalten ihre gewohnte Bedeutung.

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/str/extract-lines-matching

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/str/extract-lines-matching \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"INFO server started\nERROR database unavailable\nWARN retrying\nERROR request timed out","pattern":"^ERROR\\b"}'
{
  "text": "INFO server started\nERROR database unavailable\nWARN retrying\nERROR request timed out",
  "pattern": "^ERROR\\b"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "str.extract_lines_matching",
  "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.

Nutzen Sie das Browserwerkzeug für schnelle Prüfungen oder die API für $0.002 je erfolgreicher Anfrage.

Validieren Sie Muster und binden Sie Ergebnisse sicher ein

Solche Fälle liefern invalid_input statt unbemerkt eines leeren Ergebnisses. Verwenden Sie das Array für strukturiertes JSON oder das verbundene Ergebnis zur Übergabe an Datei, Ticket oder Befehl. API-Automatisierung kostet $0.002 je erfolgreicher Anfrage; die Browsernutzung ist kostenlos.

Was geschieht, wenn keine Zeile passt?

Die Anfrage ist erfolgreich und liefert ein leeres Ergebnis, ein leeres Array, matched_count null sowie total_lines mit der geprüften Zeilenzahl.

Vollständige KIT-Dokumentation lesen →