Reguläre Ausdrücke (regex oder regexp) sind ein leistungsstarkes Werkzeug zum Suchen, Ersetzen und Validieren von Text mithilfe von Mustern. Sie werden in allen Programmiersprachen, Texteditoren und der Kommandozeile verwendet. Obwohl Regex auf den ersten Blick kompliziert aussehen mag, sind die Grundkonzepte recht einfach. In diesem Leitfaden gehen wir von den Grundlagen zu fortgeschrittenen Techniken über.
Was sind reguläre Ausdrücke
Ein regulärer Ausdruck ist eine Zeichenfolge, die ein Textmuster beschreibt. Beispielsweise beschreibt der Ausdruck \d{3}-\d{2}-\d{2} eine Telefonnummer im Format „123-45-67“. Anstatt nach einem bestimmten Text zu suchen, können Sie mit Regex nach dem Muster suchen – jedem Text, der einem bestimmten Format entspricht.
Regex werden in allen wichtigen Programmiersprachen unterstützt: JavaScript, Python, PHP, Java, C#, Go, Ruby und andere. Die Syntax ist größtenteils gleich, obwohl es geringfügige Unterschiede zwischen den Implementierungen gibt.
Grundlegende Syntax
Wörtliche Zeichen
Der einfachste reguläre Ausdruck ist nur Text. Der Ausdruck hello findet das Wort „Hallo“ im Text. Die meisten Symbole sind selbstübereinstimmend.
Metazeichen
Sonderzeichen haben in Regex eine besondere Bedeutung:
.– jedes einzelne Zeichen (außer Newline)^ist der Anfang der Zeile$– Zeilenende\d– beliebige Zahl (0-9)\w– jeder Buchstabe, jede Zahl oder jeder Unterstrich\s– Leerzeichen (Leerzeichen, Tabulator, neue Zeile)\b– Wortgrenze
Großbuchstaben bedeuten das Gegenteil: \D ist keine Zahl, \W ist kein Buchstabe, \S ist kein Leerzeichen.
Zeichenklassen
Eckige Klammern definieren den Zeichensatz:
[abc]– Symbol a, b oder c[a-z]– jeder lateinische Kleinbuchstabe[A-Z0-9]– Großbuchstabe oder Zahl[^abc]– jedes Zeichen außer a, b, c[а-яА-ЯіІїЇєЄґҐ]— Ukrainische Buchstaben
Quantifizierer
Quantoren bestimmen die Anzahl der Wiederholungen:
*– 0 oder mehr Mal+– 1 oder mehr Mal?– 0 oder 1 Mal{3}– genau 3 Mal{2,5}– von 2 bis 5 Mal{3,}– 3 oder mehr Mal
Beispiele: \d+ – eine oder mehrere Zahlen, [a-z]{2,4} – 2 bis 4 Kleinbuchstaben.
Gruppen und Alternativen
Gruppierung
Die Klammern () gruppieren Teile eines Ausdrucks und erfassen den gefundenen Text:
(\d{2})-(\d{2})-(\d{4})– Datum mit drei Gruppen (Tag, Monat, Jahr)(?:abc)– Gruppe ohne Erfassung (aus Gründen der Geschwindigkeit)
Alternativen
Das Symbol | bedeutet „oder“:
cat|dog– „Katze“ oder „Hund“(Mon|Tue|Wed|Thu|Fri)– an jedem Werktag
Typische Vorlagen
E-Mail-Adresse
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
URL
https?://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/[^\s]*)?
Telefon (Ukraine)
\+?380[\s-]?\d{2}[\s-]?\d{3}[\s-]?\d{2}[\s-]?\d{2}
IPv4-Adresse
\b(?:\d{1,3}\.){3}\d{1,3}\b
Datum (TT.MM.JJJJ)
(?:0[1-9]|[12]\d|3[01])\.(?:0[1-9]|1[0-2])\.\d{4}
Lookahead und Lookbehind
Erweiterte Konstrukte zum Überprüfen des Kontexts, ohne ihn in das Ergebnis einzubeziehen:
(?=...)– positiver Lookahead: Der Text danach muss mit dem Muster übereinstimmen(?!...)– negativer Lookahead: Text danach sollte NICHT mit übereinstimmen
(? übereinstimmen
Beispiel: \d+(?= грн) – findet Zahlen vor „UAH“ (UAH 100 → erfasst „100“).
Flags (Modifikatoren)
i– Groß- und Kleinschreibung wird nicht beachtetg– globale Suche (alle Übereinstimmungen finden,nicht nur der erste)m– Mehrzeilenmodus (^und$arbeiten pro Zeile)s– Punkt.stimmt auch mit dem Zeilenumbruch überein
Tipps zur effektiven Anwendung
- Einfach beginnen – Schreiben Sie zuerst eine grundlegende Vorlage und gehen Sie dann komplexer vor
- Test mit verschiedenen Daten – Testen Sie sowohl positive als auch negative Fälle
- Gier vermeiden –
*?und+?für Lazy-Quantifizierer verwenden - Kommentieren Sie komplexe Ausdrücke aus – verwenden Sie das Flag
xfür lesbaren regulären Ausdruck - HTML nicht mit regulären Ausdrücken analysieren – DOM-Parser verwenden
Übung: Regex online testen
Der beste Weg, Regex zu lernen, ist Übung. Verwenden Sie unseren Regex-Tester, um Übereinstimmungen in Echtzeit hervorzuheben und Ihnen zu helfen, zu verstehen, wie Ihr Muster funktioniert.
Fazit
Reguläre Ausdrücke sind ein unverzichtbares Werkzeug für jeden Entwickler. Sie ermöglichen Ihnen die effiziente Suche, Validierung und Transformation von Text. Beginnen Sie mit einfachen Mustern, lernen Sie nach und nach neue Konstruktionen und mit der Zeit wird Regex zu Ihrem starken Verbündeten bei der Arbeit mit Textdaten.