đŸ§©
← ZurĂŒck zu Anleitungen

Regex fĂŒr Einsteiger: So schreibst du regulĂ€re AusdrĂŒcke

· Tags: regex-beginners, regular-expression-guide, regex-tutorial, regex-patterns, learn-regex

Regex fĂŒr Einsteiger

RegulĂ€re AusdrĂŒcke — regex — sind Muster, die Text beschreiben. Mit regex kannst du Zeichenketten durchsuchen, Eingaben validieren, Daten extrahieren und komplexe Suchen-und-Ersetzen-Operationen mit einem einzigen kompakten Ausdruck durchfĂŒhren. Sobald du die Grundlagen verstanden hast, wird regex zu einem der leistungsstĂ€rksten Werkzeuge in deinem Programmier-Werkzeugkasten.

Was ist ein regulÀrer Ausdruck?

Ein regex ist eine Folge von Zeichen, die ein Suchmuster definiert. Das Muster \d{3}-\d{2}-\d{4} gleicht eine US-Sozialversicherungsnummer ab: drei Ziffern, Bindestrich, zwei Ziffern, Bindestrich, vier Ziffern.

Regex-Engines gibt es in praktisch jeder Programmiersprache — JavaScript, Python, Java, Ruby, Go — alle mit integrierter UnterstĂŒtzung.

Literale Zeichen

Die meisten Zeichen entsprechen sich selbst. Das Muster cat gleicht die wörtliche Zeichenkette "cat" ĂŒberall dort ab, wo sie vorkommt.

Pattern: cat
Matches: "cat" in "The cat sat on the mat."
Matches: "cat" in "catalog"

Der Abgleich mit literalen Zeichen ist unkompliziert, aber begrenzt. Die eigentliche StÀrke liegt in Metazeichen.

Metazeichen

Diese Zeichen haben eine besondere Bedeutung und mĂŒssen mit \ maskiert werden, um wörtlich abgeglichen zu werden:

. ^ $ * + ? { } [ ] \ | ( )

Zeichenklassen

Zeichenklassen gleichen ein einzelnes Zeichen aus einer Menge ab.

Notation mit eckigen Klammern

| Muster | Übereinstimmung | |--------|------------------| | [aeiou] | Jeder Vokal | | [0-9] | Jede Ziffer | | [a-zA-Z] | Jeder Buchstabe | | [^0-9] | Jedes Zeichen, das KEINE Ziffer ist |

Vordefinierte Klassen

| Kurzform | Beschreibung | |-----------|--------------| | \d | Jede Ziffer (wie [0-9]) | | \w | Buchstabe, Ziffer oder Unterstrich | | \s | Leerzeichen, Tabulator, Zeilenumbruch | | \D | Jede Nicht-Ziffer | | \W | Jedes Nicht-Wort-Zeichen | | \S | Jedes Nicht-Leerzeichen | | . | Jedes Zeichen außer Zeilenumbruch |

Quantoren

Quantoren legen fest, wie oft das vorangehende Element vorkommen muss.

| Quantor | Bedeutung | Beispiel | Übereinstimmung | |---------|-----------|---------|-----------------| | * | Null oder mehr | a* | "", "a", "aa" | | + | Ein oder mehr | a+ | "a", "aa", "aaa" | | ? | Null oder eins | colou?r | "color", "colour" | | {3} | Genau N | \d{3} | "123" | | {2,4} | Zwischen N und M | \d{2,4} | "12", "123", "1234" |

Beispiele

\d+     → "42" in "Answer is 42"
https?://  → "http://" and "https://"

Anker

Anker gleichen Positionen ab, nicht Zeichen.

| Anker | Bedeutung | |-------|-----------| | ^ | Anfang der Zeichenkette | | $ | Ende der Zeichenkette | | \b | Wortgrenze | | \B | Nicht-Wortgrenze |

^hello   → matches "hello" only at the start
end$     → matches "end" only at the end
\bword\b → matches "word" as a whole word, not inside "sword"

Gruppen und Alternation

Erfassende Gruppen ( ) extrahieren abgeglichene Teile:

(\d{3})-(\d{4}) → "555-1234", captures "555" in group 1, "1234" in group 2

Nicht-Erfassende Gruppen (?: ) gruppieren ohne zu extrahieren:

(?:https?|ftp):// → "http://", "https://", "ftp://"

Alternation | fungiert als ODER:

cat|dog|bird → matches "cat", "dog", or "bird"

Praktische regex-Beispiele

| Anwendungsfall | Muster | |---------------|--------| | US-Telefonnummer | \d{3}-\d{3}-\d{4} | | E-Mail (einfach) | \S+@\S+\.\S+ | | IP-Adresse | \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} | | Hashtag | #[a-zA-Z]\w* | | Uhrzeit (HH:MM) | [01]\d|2[0-3]:[0-5]\d |

So testest du ein regex-Muster

Teste Muster immer interaktiv:

  1. Gib dein regex-Muster ein.
  2. Gib einen Teststring ein.
  3. Sieh in Echtzeit, welche Teile ĂŒbereinstimmen.
  4. Passe an und wiederhole.

Nutze das regex-Tester-Tool, um mit Mustern zu experimentieren. Es hebt Übereinstimmungen hervor, zeigt Erfassungsgruppen und hilft dir zu verstehen, was genau jeder Teil deines Ausdrucks bewirkt.

Regex fĂŒr Einsteiger: So schreibst du regulĂ€re AusdrĂŒcke - CoolTool