Zeilen per Regex filtern
Liste einfügen, eine Regex schreiben, nur die passenden Zeilen zurückbekommen. Für Logbereinigung, Lead-Listen und alle Texte, aus denen du nur die richtigen Zeilen brauchst.
Oder Strg+Enter drücken
Wann du dieses Tool nutzen solltest
AnleitungNur ERROR/WARN-Zeilen aus einem Serverlog mit 50.000 Zeilen behalten, ohne grep auf dem Server zu fahren.
Aus einer langen E-Mail-Liste nur die Gmail-Adressen oder nur die @firma.de-Domäne herausziehen.
Einen großen Sitemap-Dump auf URLs mit einem bestimmten Pfadmuster reduzieren — ohne Excel-Filterdialog.
Visuell an einer Regex iterieren: Muster anpassen, Ausführen klicken, sehen welche Zeilen bleiben. Sechs Voreinstellungen helfen beim Start.
So funktioniert's
drei Schritte-
01
Text einfügen oder .txt-Datei ablegen
Live-Vorschau bis 100.000 Zeilen am Desktop / 5.000 am Handy. Größere Eingaben wechseln automatisch in den Großdatei-Modus — gleiche Engine, die Seite bleibt reaktiv und liefert einen .txt-Download.
-
02
Eine Regex schreiben
JavaScript-Geschmack (ohne Slashes drumherum). 15 Presets decken E-Mail, URL, IP, Datum, Zeit, Telefon ab — plus parametrische Muster wie Starts/Ends/Contains mit hervorgehobenem abc-Platzhalter.
-
03
Auf „Ausführen" klicken
Passende Zeilen bleiben, der Rest wird verworfen. Schalter für „Groß-/Kleinschreibung", „Leerzeichen trimmen", „Leerzeilen entfernen", „Duplikate entfernen" oder „Mischen" vor dem Ausführen umlegen.
Unter der Haube
Technische Hinweise- Algorithmus
- JavaScript native RegExp · ein re.test() pro Zeile
- Durchsatz
- 100.000 Zeilen in ≈380 ms auf einem 2024er M3 MacBook Air
- Threading
- Web Worker bei Dateien ≥ 2 MB oder ≥ 100.000 Zeilen
Dieselbe ECMA-262 Engine, die V8 / SpiderMonkey verwenden. Default i-Flag (Groß-/Kleinschreibung ignoriert), außer der „Groß-/Kleinschreibung"-Schalter ist an.
O(n) Scan, keine Allokation pro Zeile außer dem Match-String. 80 MB Hartlimit pro Lauf schützt vor versehentlichen Gigabyte-Inputs.
Main Thread bleibt interaktiv; der Worker lädt dieselbe dedupe.js Engine und postet das Ergebnis zurück.
Datenschutz & Grenzen
was wo bleibtAlles läuft in deinem Browser. Dein Text wird nie hochgeladen — kein fetch, kein XHR, keine Analytics auf deinem Input. Nach dem Laden der Seite kannst du dich vom Netz trennen, das Tool funktioniert weiter. 80 MB Hartlimit pro Lauf schützt vor versehentlichem Sperren des Tabs bei Multi-Gigabyte-Logs.
Häufige Anwendungsfälle
wo es passtLog-Filterung in großem Maßstab
Behalte aus einem 100.000-Zeilen-Server-Log nur ERROR / WARN / FATAL. Iteriere das Pattern visuell, statt per SSH grep-Varianten zu fahren.
Lead-Listen säubern
Ziehe aus einem 50.000-Zeilen-Email-Export nur die gmail.com oder @deine-firma.com Adressen — kein Excel-Filter-Tanz, kein Upload.
Sitemap-Audit
Kürze einen 200.000-Zeilen-Sitemap-Dump auf URLs, die zu einem Pfad-Pattern passen. Kombiniere mit dem Duplikatentferner auf der Startseite für eindeutige URLs.
Pattern-Tests, ohne die Daten zu verlassen
Iteriere ein Regex gegen deine echte Liste (nicht regex101-Spielzeugbeispiele), ohne irgendetwas hochzuladen. Anpassen, Run, Treffer anschauen.
Performance & Vergleich
echte Zahlen| Metrik | Wert | Hinweise |
|---|---|---|
| Durchsatz · 100.000 Zeilen | DedupeLines: ~380 ms (Chrome 132) · GNU grep -E: ~160 ms | Gemessen auf MacBook Air M3 (2024). Referenz: 100.000 Log-Zeilen, Pattern /^(ERROR|WARN)/. grep gewinnt bei roher Geschwindigkeit; DedupeLines gewinnt bei "kein SSH, keine Installation, läuft in jedem Browser-Tab — auch iPad und gesperrten Firmen-Windows". |
| Speicher-Footprint | DedupeLines: ~3× Input im JS-Heap · grep: ~1.2× Input im RSS | Browser-JS-Overhead vs. native Binary. 80 MB Hartlimit pro Lauf verhindert OOM-Tab-Crashes; ein 50-MB-Log bleibt unter 200 MB im Speicher. |
| Async-Offload-Schwelle | DedupeLines: 2 MB / 100.000 Zeilen (Desktop) · regex101.com: ~50.000 Zeichen Editor-Limit | Über der Schwelle lagert DedupeLines in einen Web Worker aus; der Haupt-Thread bleibt interaktiv. iOS-Safari-Speichergrenzen treiben die niedrigere Mobile-Schwelle (300 KB / 5.000 Zeilen). |
| Regex-Engine | DedupeLines: ECMA-262 §22.2 RegExp · grep: POSIX BRE / ERE | JavaScript-natives RegExp — gleiche Engine in Chrome, Firefox, Safari, Edge. Lookbehind, benannte Gruppen, Unicode-Property-Escapes (\p{…}) werden alle unterstützt. POSIX-Variante in grep ist konservativer. |
| Kaltstart-Latenz | DedupeLines: 0 ms (Seite bereits geladen) · SSH auf Remote: 200-500 ms RTT | Kein Round-Trip zu einer entfernten Maschine. Sobald die Seite geladen ist, läuft das Regex so schnell wie ein Tastendruck, und das Tool funktioniert offline. |
Häufig gefragt
beantwortetWelcher Regex-Geschmack wird hier verwendet?
JavaScript built-in RegExp (ECMA-262). Lookbehind, benannte Gruppen, Unicode-Property-Escapes (\p{…}) funktionieren in modernem Chrome, Firefox, Safari, Edge. Schreibe kein / vor dein Muster; die Slashes ums Eingabefeld sind dekorativ.
Warum matcht meine Regex nichts?
Drei häufige Ursachen: (1) der „Leerzeichen trimmen"-Schalter ist aus und deine Zeilen haben Leerzeichen am Ende, was ^…$-Anker bricht, (2) der „Groß-/Kleinschreibung"-Schalter ist an und deine Zeichen unterscheiden sich in der Schreibweise, (3) du hast Slashes escaped — JavaScript-Regex braucht das nicht.
Kann das Muster mehrere Zeilen umfassen?
Nein — dieses Tool führt die Regex pro Zeile aus, by design. Für zeilenübergreifende Matches nutze eine Regex-IDE wie regex101.com, die dotall und Multiline-Anker direkt unterstützt.
Werden meine Daten irgendwohin geschickt?
Nein. Der Match läuft komplett in deinem Browser-Tab. Kein Upload-Schritt, keine serverseitige Verarbeitung, keine Telemetrie auf dem Text, den du einfügst. Trenn nach dem Laden das WLAN und das Tool funktioniert weiter.
Was ist das Dateigrößenlimit?
80 MB Hartlimit pro Lauf. Über 2 MB am Desktop (300 KB am Handy) wechselt das Tool in den Großdatei-Modus — dein Text geht nicht durch die Textarea, die Verarbeitung läuft in einem Web Worker, das Ergebnis wird als .txt heruntergeladen.