Was sind reguläre Ausdrücke?
Reguläre Ausdrücke, auch bekannt als „regex“ oder „regexp“, sind eine Folge von Zeichen, die ein Suchmuster definieren. Sie werden verwendet, um Text aus einem größeren Textkorpus abzugleichen und zu extrahieren und werden häufig in der Programmierung, beim Data Mining und zur Manipulation und Extraktion von Text genutzt. In der Arbeit mit Text können RegEx unter anderem zur Datenüberprüfung, zum Suchen und Ersetzen und zur Textanalyse verwendet werden.
Zeichenauswahl und Zeichenklassen in RegEx
Symbol | Erklärung |
---|---|
[abc] | findet jedes einzelne Zeichen in der Menge (a, b oder c) |
[^abc] | findet jedes einzelne Zeichen, das nicht in der Menge enthalten ist (a, b oder c) |
{n} | Passt auf genau n Vorkommen des vorangehenden Zeichens oder der vorangehenden Gruppe |
{n,} | Passt auf n oder mehr Vorkommen des vorangehenden Zeichens oder der vorangehenden Gruppe |
{n,m} | Entspricht mindestens n und höchstens m Vorkommen des vorangehenden Zeichens oder der vorangehenden Gruppe |
^ | entspricht dem Anfang einer Zeile |
$ | Entspricht dem Ende einer Zeile |
. | passt auf jedes einzelne Zeichen, außer auf eine neue Zeile |
* | passt auf null oder mehr der vorangehenden Zeichen |
+ | Entspricht einem oder mehreren der vorangehenden Zeichen |
? | entspricht null oder einem der vorangehenden Zeichen |
\d | entspricht einer beliebigen Ziffer (entspricht [0-9]) |
\D | Passt auf eine beliebige Nicht-Ziffer |
\w | passt auf jedes Wortzeichen (alphanumerische Zeichen und Unterstriche) |
\W | Entspricht einem beliebigen Nicht-Wort-Zeichen |
\s | entspricht einem beliebigen Leerzeichen (einschließlich Tabulatoren und Leerzeichen) |
\S | Passt zu jedem Zeichen, das kein Leerzeichen ist |
| | Entspricht entweder dem vorangehenden oder dem folgenden Zeichen oder der Gruppe |
() | Gruppiert die eingeschlossenen Zeichen und wendet den folgenden Quantifizierer auf die gesamte Gruppe an |
Beispiele für reguläre Ausdrücke aus der Praxis
Validierung von E-Mail-Adressen
Ein regulärer Ausdruck kann verwendet werden, um zu prüfen, ob eine gegebene Zeichenkette eine gültige E-Mail-Adresse ist, indem sie mit einem Muster verglichen wird, das die Struktur einer gültigen E-Mail-Adresse definiert.
Beispielsyntax:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Parsing von URLs
Ein regulärer Ausdruck kann verwendet werden, um die verschiedenen Teile einer URL zu extrahieren, z. B. das Protokoll, den Hostnamen und den Pfad.
Beispielsyntax:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
Extrahieren von Telefonnummern aus Text
Ein regulärer Ausdruck kann verwendet werden, um Telefonnummern aus einem Textblock zu identifizieren und zu extrahieren.
Beispielsyntax:
^(?:\+\d{1,3}|0\d{1,3}|00\d{1,2})?(?:\s?\d){9,12}$
Entfernen von HTML-Tags aus einer Zeichenkette
Ein regulärer Ausdruck kann verwendet werden, um alle HTML-Tags aus einer Zeichenfolge zu entfernen, so dass nur der reine Textinhalt übrig bleibt.
Beispielsyntax:
\/?[^>]+
Suche nach bestimmten Wörtern oder Mustern in einer Zeichenkette
Ein regulärer Ausdruck kann verwendet werden, um schnell nach einem bestimmten Wort oder Muster in einer Zeichenfolge zu suchen.
Beispielsyntax:
\b(Wort1|Wort2|Wort3)\b
Ersetzen von Text
Ein regulärer Ausdruck kann verwendet werden, um alle Vorkommen eines bestimmten Wortes oder Musters in einer Zeichenfolge durch ein anderes Wort oder Muster zu ersetzen.
Beispielsyntax:
(Wort1|Wort2|Wort3)
Extrahieren von Daten aus strukturierten Dateien
Ein regulärer Ausdruck kann verwendet werden, um bestimmte Daten aus strukturierten Dateien wie CSV, JSON und Protokollen zu extrahieren.
Beispielsyntax:
(\w+)=(\d+)
Validierung von Kreditkartennummern
Ein regulärer Ausdruck kann verwendet werden, um sicherzustellen, dass eine bestimmte Zeichenfolge eine gültige Kreditkartennummer ist, indem sie mit einem Muster verglichen wird, das die Struktur einer gültigen Kreditkartennummer definiert.
Beispielsyntax:
^(?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$
Tokenisierung eines Satzes
Reguläre Ausdrücke können verwendet werden, um einen Satz in Wörter und Satzzeichen zu zerlegen.
Beispielsyntax:
\w+|[^\w\s]+
Datenextraktion aus natürlichsprachigem Text
Ein regulärer Ausdruck kann verwendet werden, um bestimmte Informationen wie Namen, Daten, Preise usw. aus natürlichem Text zu extrahieren.
Beispielsyntax:
\b