Regex-Handbuch: Muster, die Sie wirklich immer wieder verwenden werden
Reguläre Ausdrücke packen eine ganze Suchsprache in eine einzige Zeile, weshalb sie kryptisch wirken, bis die Bausteine endlich zusammenpassen. Dieses Handbuch behandelt die 20 Prozent der Syntax, die 80 Prozent der Aufgaben lösen: E-Mails in eingefügtem Text finden, Eingaben prüfen, Logs aufteilen und Dateinamen stapelweise umschreiben.
1. Literale, Punkte und Zeichenklassen
Die meisten Zeichen stehen für sich selbst; der Punkt steht für ein beliebiges Zeichen außer einem Zeilenumbruch. Eckige Klammern definieren eine Menge — [0-9] nimmt eine beliebige Ziffer, [^0-9] nimmt alles außer einer Ziffer — während Kürzel wie \d, \w und \s Ziffern, Wortzeichen und Leerraum abdecken. Bevorzugen Sie eine explizite Klasse gegenüber einem bloßen Punkt, wann immer Sie wissen, was dorthin gehört.
2. Anker und Quantoren
^ verankert am Anfang und $ am Ende, sodass ^hi nur Zeichenketten findet, die mit hi beginnen. Fügen Sie + für einmal oder mehrmals, * für nullmal oder mehrmals und ? für optional hinzu; ein nachgestelltes ? schaltet auf lazy Matching um, das bei der ersten statt der letzten Gelegenheit stoppt. Greedy gegen lazy ist die häufigste Quelle überraschender Treffer.
3. Gruppen, Alternativen und Lookarounds
Klammern gruppieren und erfassen — (cat|dog)s? findet cat, cats, dog oder dogs — während (?:…) ohne Erfassung gruppiert. Lookaheads wie \d+(?=px) prüfen, was folgt, ohne es zu verbrauchen, sodass Sie ein Suffix verlangen und es für den nächsten Treffer stehen lassen können. Benannte Gruppen dokumentieren die Absicht für alle, die das Muster später lesen.
4. Flags verändern alles
Buchstaben nach dem schließenden Schrägstrich stimmen die Engine ab: g findet alle Treffer statt nur des ersten, i ignoriert die Großschreibung, m lässt Anker pro Zeile wirken, s lässt den Punkt über Zeilenumbrüche hinweg greifen, u aktiviert volles Unicode und y bindet das Matching an eine Position. Ein falscher Flag-Satz ist ein häufiger Grund dafür, dass ein korrekt aussehendes Muster nichts zurückgibt.
5. Die Backtracking-Falle
Verschachtelte Quantoren wie (a+)+ auf einer langen nicht passenden Zeichenkette können die Engine in eine exponentielle Zahl von Pfaden schicken und den Tab einfrieren. Halten Sie Wiederholungen flach, bevorzugen Sie possessive Umschreibungen oder atomare Gruppen wo unterstützt, und testen Sie verdächtige Muster vor dem Versand gegen feindliche Eingaben — fügen Sie sie in unseren Regex-Tester ein, der jeden Treffer und jede Gruppe live in Ihrem Browser hervorhebt.