Regex Cheat Sheet: Die ultimative Referenz
Reguläre Ausdrücke (Regex) sind unglaublich mächtig, aber bekanntlich schwer zu meistern. Egal, ob Sie eine E-Mail-Adresse validieren, Daten scrapen oder Code durchsuchen, ein zuverlässiges Regex Cheat Sheet kann Ihnen Stunden an Frust ersparen.
In diesem Leitfaden schlüsseln wir jede Regex-Komponente auf, von Basiszeichen bis hin zu komplexen Lookarounds, ergänzt durch visuelle Erklärungen und praktische Beispiele.
1. Kern-Metazeichen
Dies sind die Grundbausteine jedes Regex-Musters.
| Metazeichen | Beschreibung | Beispiel |
|---|---|---|
. |
Entspricht jedem einzelnen Zeichen außer Zeilenumbruch | a.b passt auf acb, a1b |
\ |
Maskiert ein Sonderzeichen | \. passt auf einen literalen . |
| |
Alternation (ODER) | cat|dog passt auf cat oder dog |
[] |
Zeichenklasse (jedes Zeichen darin) | [aeiou] passt auf jeden Vokal |
[^] |
Negierte Zeichenklasse | [^0-9] passt auf jedes Nicht-Digitalzeichen |
2. Quantoren: Häufigkeit steuern
Quantoren sagen der Regex-Engine, wie oft ein Zeichen oder eine Gruppe erscheinen soll.
| Quantor | Beschreibung | Beispiel |
|---|---|---|
* |
0 oder mehr Mal | a* passt auf ``, a, aa |
+ |
1 oder mehr Mal | a+ passt auf a, aa |
? |
0 oder 1 Mal (optional) | a? passt auf `` oder a |
{n} |
Genau n Mal |
a{3} passt auf aaa |
{n,} |
n oder mehr Mal |
a{2,} passt auf aa, aaa |
{n,m} |
Zwischen n und m Mal |
a{2,4} passt auf aa, aaa, aaaa |
3. Zeichenklassen: Gängige Abkürzungen
| Klasse | Beschreibung | Entsprechung |
|---|---|---|
\d |
Jede Ziffer | [0-9] |
\D |
Jede Nicht-Ziffer | [^0-9] |
\w |
Jedes Wortzeichen (alphanumerisch + _) |
[a-zA-Z0-9_] |
\W |
Jedes Nicht-Wortzeichen | [^a-zA-Z0-9_] |
\s |
Jedes Leerzeichen (Leerzeichen, Tab, Umbruch) | [ \t\n\r\f\v] |
\S |
Jedes Nicht-Leerzeichen | [^ \t\n\r\f\v] |
4. Anker: Grenzen definieren
| Anker | Beschreibung | Beispiel |
|---|---|---|
^ |
Start des Strings / der Zeile | ^Hallo |
$ |
Ende des Strings / der Zeile | Welt$ |
\b |
Wortgrenze | \bcat\b (passt auf "cat", aber nicht auf "category") |
\B |
Keine Wortgrenze | \Bcat (passt auf "category") |
5. Gruppen und Capturing
| Syntax | Beschreibung | Beispiel |
|---|---|---|
(...) |
Capturing-Gruppe | (abc)+ passt auf abcabc |
(?:...) |
Nicht-Capturing-Gruppe | (?:abc)+ |
(?<name>...) |
Benannte Capturing-Gruppe | (?<id>\d+) |
\1 |
Rückreferenz auf Gruppe Nr. 1 | (\w)\1 passt auf aa, bb |
6. Lookaround: Fortgeschrittenes Filtern
Lookarounds ermöglichen es Ihnen, ein Muster nur dann zu finden, wenn ihm ein anderes Muster folgt oder vorausgeht (oder eben nicht), ohne dieses Muster in das Ergebnis einzubeziehen.
| Syntax | Name | Beschreibung |
|---|---|---|
(?=...) |
Positives Lookahead | Gefolgt von ... |
(?!...) |
Negatives Lookahead | NICHT gefolgt von ... |
(?<=...) |
Positives Lookbehind | Vorausgegangen von ... |
(?<!...) |
Negatives Lookbehind | NICHT vorausgegangen von ... |
7. Regex visualisieren mit Eisenbahndiagrammen
Komplexe Regex-Muster können schnell unleserlich werden. Eisenbahndiagramme sind eine visuelle Art, den Fluss eines regulären Ausdrucks darzustellen.
Stellen Sie sich ein Bahngleis vor:
- Das Gleis teilt sich bei einer Alternation (
|). - Das Gleis bildet eine Schleife bei einem Quantor (
*,+). - Das Gleis führt durch eine Gruppen-Box.
Die Verwendung eines Visualisierers hilft Ihnen beim Debuggen von Logikfehlern, insbesondere bei geschachtelten Gruppen oder komplexen Quantoren.
8. Praktische Beispiele
E-Mail-Validierung (Vereinfacht)
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Starkes Passwort (Lookahead-Beispiel)
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$
(Erfordert mindestens einen Kleinbuchstaben, einen Großbuchstaben, eine Ziffer und 8+ Zeichen)
Telefonnummer (US-Format)
^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]\d{3}[\s.-]\d{4}$
9. Häufig gestellte Fragen (FAQ)
Q: Was ist der Unterschied zwischen "Greedy" und "Lazy" Matching?
A: Standardmäßig sind Quantoren greedy (gierig) – sie passen auf so viel wie möglich. Das Hinzufügen eines ? nach einem Quantor (z. B. .*?) macht ihn lazy (genügsam), was bedeutet, dass er auf so wenig wie möglich passt.
Q: Wie führe ich eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durch?
A: Die meisten Regex-Engines verwenden ein Flag (normalerweise i), um die Groß-/Kleinschreibung zu ignorieren. Zum Beispiel passt /hello/i auf Hello, HELLO und hello.
Q: Was ist Backtracking und warum ist es wichtig?
A: Backtracking tritt auf, wenn die Regex-Engine einen Pfad ausprobiert, scheitert und "zurücksetzt", um einen anderen zu probieren. Komplexe Muster mit vielen geschachtelten Quantoren können zu katastrophalem Backtracking führen, das Ihre Anwendung oder Ihren Server einfrieren kann.
Testen Sie Ihre Muster auf Tool3M
- Regex Tester: Echtzeit-Regex-Tests mit Hervorhebung und visuellem Debugging.
- JSON Formatter: Verwenden Sie Regex, um Ihre großen JSON-Datensätze zu durchsuchen und zu filtern.
- Case Converter: Bereinigen Sie Ihren Text, bevor Sie Regex-Filter anwenden.