Regex (Reguläre Ausdrücke) – Textanalyse, Mustererkennung, E-Mail & Telefonnummer
Dieser Beitrag ist eine Begriffserklärung zu regulären Ausdrücken – inklusive Prüfungsfragen und Tags.
In a Nutshell
Reguläre Ausdrücke (Regex) sind Muster, mit denen sich bestimmte Zeichenfolgen in Texten identifizieren, extrahieren oder validieren lassen. Sie sind ein mächtiges Werkzeug zur automatisierten Textanalyse und Datenverarbeitung.
Kompakte Fachbeschreibung
Reguläre Ausdrücke definieren Suchmuster für Zeichenfolgen und ermöglichen die effiziente Analyse großer Textmengen. Sie kommen in nahezu allen Programmiersprachen sowie in vielen Kommandozeilentools (z.B. grep, sed) zum Einsatz. Typische Aufgaben sind das Extrahieren strukturierter Daten (wie E-Mail-Adressen, Telefonnummern), die Validierung von Formateingaben und die Transformation von Zeichenketten. Regex bestehen aus Literalzeichen, Metazeichen (., *, +, ?, []) und Steuerzeichen wie ^ und $. Durch Gruppierungen () und Alternativen | lassen sich komplexe Muster formulieren.
Prüfungsrelevante Stichpunkte
- Regex ermöglichen Mustererkennung in Zeichenketten
- Sie verwenden eine spezifische Syntax aus Literalen und Metazeichen
- Dienen zur Validierung, Extraktion und Ersetzung von Textmustern
- In vielen Programmiersprachen (z.B. Java, Python, JavaScript) direkt nutzbar
- Erhöhen die Effizienz bei der Verarbeitung großer Datenmengen
- Fehlerhafte Regex können zu Sicherheitslücken oder Performanceproblemen führen
- Optimierte Regex vermeiden ReDoS (Regular Expression Denial of Service)
- Regex-Muster müssen dokumentiert und getestet werden
Kernkomponenten
1. Literalzeichen (a, b, c, …)
2. Metazeichen (., *, +, ?, {n,m})
3. Zeichenklassen ([A-Z], [0-9])
4. Gruppenbildung ((...))
5. Alternativen (|)
6. Anker (^ für Beginn, $ für Ende)
7. Escaping (\.)
8. Lookaheads (?=...)
9. Greedy vs. Lazy Matching
10. Match- und Replace-Tests in Test-Frameworks
Praxisbeispiel
// Beispiel: Regex zur Extraktion von E-Mail-Adressen
regex = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
Erklärung: Dieses Muster erkennt typische E-Mail-Adressen durch Kombination aus Zeichenklassen, Quantifizierern und Literalen.
Vorteile und Nachteile
Vorteile
- Hohe Flexibilität und Präzision bei der Textanalyse
- Plattformunabhängig nutzbar
- Ideal für Validierung und Parsing
Nachteile
- Komplexe Syntax, schwer lesbar
- Fehleranfällig bei falschem Escaping oder Greedy Matching
- Performanceprobleme bei ineffizienten Mustern
Typische Prüfungsfragen (mit Kurzantwort)
- Regex verwendet für? Suche, Analyse und Verarbeitung von Zeichenfolgen anhand vordefinierter Muster.
- Regex für Telefonnummer?
\+49\s\d{3,5}\s\d{4,} - Anfang und Ende im Regex? ^ (Anfang), $ (Ende)
- Alternative Zeichenfolgen formulieren?
Mit Alternativzeichen |, z.B.
Hund|Katze - Zeichen
.im Regex bedeutet? Beliebiges einzelnes Zeichen außer Zeilenumbrüchen. - Greedy vs. Lazy Matching? Greedy matcht so viel wie möglich, lazy so wenig wie nötig.
- Regex sicherheitsrelevant? Schlecht geschriebene Regex können ReDoS-Angriffe ermöglichen.
- Komplexe reguläre Ausdrücke testen? Mit Tools wie regex101, Unit-Tests und realistischer Testdatenbasis.
Wichtigste Quellen
- https://regex101.com
- https://developer.mozilla.org/de/docs/Web/JavaScript/Guide/Regular_Expressions
- https://www.regular-expressions.info