Wenn Sie anfangen, Skripte und Programme zu schreiben, werden Sie oft vor ähnlichen Aufgaben stehen. Statt mühsam Schleifen und Abfragen zu konstruieren, empfiehlt sich der Einsatz von RegEx. In diesem Artikel zeigen wir, was RegEx konkret kann und welche Einsatzmöglichkeiten es gibt.
Was ist RegEx?
RegEx steht in der Softwareentwicklung und im Webdesign für Regular Expression und beschreibt eine Zeichenfolge mit Syntaxregeln, um eine Gruppe von Zeichenketten zu beschreiben. Ein solcher regulärer Ausdruck wird etwa bei der Suchen-und-Ersetzen-Funktion in Word genutzt – RegEx erkennt Zeichenketten, also zum Beispiel ein Wort, und ersetzt diese.
Ist RegEx eine Programmiersprache?
RegEx ist streng genommen keine Programmiersprache. RegEx sind formale Grammatiken, die als Abkürzungen für Codierungen verwendet werden, um Implementierungen zu erleichtern. Sie sind also nicht komplett mit Python oder JavaScript zu vergleichen, sondern können im Rahmen solcher Sprachen eingesetzt werden.
Wie funktioniert RegEx?
Für RegEx gibt es Syntaxregeln, um ein Muster in einer Zeichenkette zu finden oder zu ersetzen. Das Muster wird mit Literalen, Metazeichen sowie speziellen Ausdrücken definiert und auf eine Zeichenkette angewendet. Wenn es eine Übereinstimmung gibt, wird das Muster genutzt, um Informationen aus der Zeichenkette zu extrahieren oder zu ändern.
Die ausführliche Erklärung: Sie besteht entweder aus regulären Zeichen oder einer Mischung von regulären Zeichen und Metazeichen. Metazeichen beschreiben bestimmte Muster oder Anordnungen von Zeichen wie etwa das genaue Vorkommen eines Zeichens, die Position eines Zeichens am Anfang einer Zeile oder die Häufigkeit eines Zeichens.
Die RegEx-Anwendung führt je nach verwendeten Sonderzeichen entweder zu einer exakten Übereinstimmung oder zu bestimmten Mustern. Wenn eine Übereinstimmung gefunden wurde, können bestimmte Aktionen auf den regulären Ausdruck angewendet werden.
Reguläre Ausdrücke: Dafür braucht man RegEx
RegEx haben viele Anwendungen, zum Beispiel in Texteditoren für Such- und Ersetzungsfunktionen und Syntaxhervorhebung. Im Webdesign helfen sie, Muster in URLs zu finden und zu überprüfen, ob ein Link auf eine bereits bestehende Ressource auf dem Server zeigt.
Programmierer und Programmiererinnen verwenden reguläre Ausdrücke häufig, um Logdateien zu analysieren und Fehler in ihren Anwendungen zu finden. Ähnlich wie Antivirenprogramme, die Systemaktivitätsprotokolle nach Viren durchsuchen, können Programmierende reguläre Ausdrücke verwenden, um Zeit und Ort von Abstürzen in ihrer Software zu identifizieren und Probleme schneller zu lösen.
Regular Expressions werden von Programmierern und Programmiererinnen, aber auch von Entwicklern und Entwicklerinnen eingesetzt, beispielsweise für folgende Praktiken:
- Überprüfung von Formaten: Reguläre Ausdrücke ermöglichen es, die Korrektheit von Formaten oder Syntax zu überprüfen. So kann etwa die Gültigkeit von E-Mail-Adressen oder Telefonnummern verifiziert werden.
- Textsuche: RegEx hilft bei der Suche nach bestimmten Mustern in Texten. Durch die Verwendung spezifischer Filter können Texte einfacher nach Stichwörtern durchsucht werden.
- Überprüfung von Eingaben: RegEx kann genutzt werden, um die Gültigkeit von Benutzereingaben in Webformularen zu untersuchen und so unerwünschte Eingaben zu verhindern.
- Vereinheitlichung der Sprache: Mit RegEx-Ausdrücken können alle Beteiligten mit den einheitlichen Ausdrücken arbeiten, was die Kommunikation vereinfacht und Missverständnisse vermeidet.
- Pattern Matching: Texte werden auf das Vorkommen von Mustern geprüft. RegEx gibt das Muster vor und die Engine vergleicht das Muster mit einer Ressource wie einem HTML-Dokument oder einem Text. Quantoren können verwendet werden, um die Ergebnisse einzuschränken. Ein Beispiel ist die Überprüfung einer eingegebenen E-Mail-Adresse auf formale Korrektheit.
- Globbing: Dateinamen werden mit Platzhaltern ergänzt, um beispielsweise alle Dateien eines bestimmten Formats zu selektieren. Der Platzhalter „Muster*" würde alle Dateien selektieren, die mit „Muster" beginnen, aber ein anderes Format haben, etwa .txt. oder .doc. Globbing wird auch bei Denial-of-Service-Attacken verwendet.
- Trunkierung: Suchbegriffe werden mithilfe von Platzhaltern abgekürzt oder abgeschnitten, um den Suchraum zu vergrößern. In einer Bibliotheksrecherche könnten alle Einträge gefunden werden, die einen bestimmten Suchbegriff enthalten.
- Stemming: Verschiedene morphologische Varianten eines Wortes werden auf den Wortstamm zurückgeführt. Google verwendet vermutlich ein ähnliches Verfahren bei der organischen Suche.
Reguläre Ausdrücke: Liste mit Regeln
Reguläre Ausdrücke werden in verschiedenen Sprachen – beispielsweise für die Programmierung und Auszeichnung – verwendet und haben unterschiedliche Funktionen. Dazu zählen HTML, JavaScript, Perl, Python, Ruby oder XML. Obwohl sich die Verwendung und Funktion von Sprache zu Sprache unterscheiden kann, bleibt die Syntax regulärer Ausdrücke weitgehend unverändert. Ein RegEx besteht, unabhängig von der Programmier- und Auszeichnungssprache, aus den folgenden Komponenten:
Element |
Beschreibung |
Pattern |
Ein RegEx-Suchmuster, der sowohl aus normalen Zeichen als auch aus einer Mischung aus regulären Zeichen und Metazeichen besteht. |
Delimiter |
Bei der Erstellung eines regulären Ausdrucks wird das Muster normalerweise von einem Delimiter umschlossen, der das Anfangs- und Endzeichen des Musters angibt, meist Anführungszeichen oder Schrägstriche. |
Modifier |
Ein Suchmuster kann durch optionale Modifikatoren ergänzt werden. |
Die folgenden Sonderzeichen erweitern typischerweise die Möglichkeiten von Patterns durch Syntaxänderungen:
Syntax |
Bedeutung |
[] |
Eine Zeichenklasse im Suchmuster, die ein einzelnes Zeichen repräsentiert. |
() |
Ein oder mehrere Zeichen, die miteinander verbunden werden können. |
- |
Gibt einen Bereich zwischen zwei normalen Zeichen an. |
$ |
Suche auf Zeilenende beschränken. |
. |
Beliebiges Zeichen. |
* |
Die Anzahl der Zeichen, Klassen oder Gruppen vor einem Stern ist beliebig (einschließlich Null). |
+ |
Mindestens das Zeichen, die Klasse oder die Gruppe kommt einmal vor. |
? |
Eine Zeichenklasse, eine Gruppe oder ein Zeichen vor einem Fragezeichen kann optional sein und höchstens einmal vorkommen. |
| |
Bezeichnet zwei oder mehr Alternativen. |
{n} |
Das vorangestellte Zeichen oder die vorangestellte Klasse oder Gruppe kommt genau n-mal vor. |
{n,m} |
Die vorangestellte Zeichenklasse oder -gruppe kommt n- bis m-mal vor. |
\b |
Damit werden Wortgrenzen bei der Suche berücksichtigt. |
\B |
Damit werden Wortgrenzen bei der Suche nicht berücksichtigt. |
\d |
Beliebige Zahl; Abkürzung für die Zeichenklasse [0-9]. |
Reguläre Ausdrücke: Beispiele
Im Folgenden finden Sie Beispiele für die Verwendung und den Aufbau einfacher regulärer Ausdrücke.
Funktion |
Bedeutung |
Regulärer Ausdruck |
RegEx mit einem Element |
Die einfachste Form eines RegEx. |
[6-9] |
RegEx mit mehreren Elementen |
Zwei entsprechende Zeichenklassen können hintereinander gestellt werden, um etwa zwei Elemente zu erfassen, für die unterschiedliche Ergebnisse denkbar sind. |
[6-9][c-f] |
RegEx mit wählbaren Elementen |
Bei der Suche nach mehreren Elementen in einem regulären Ausdruck können bestimmte Elemente unter bestimmten Bedingungen enthalten sein, zum Beispiel bei der Suche nach Hausnummern mit unterschiedlichen Ziffern und Buchstaben. |
[1-9][0-9]?[0-9]?[a-z]? |
RegEx mit beliebigen Wiederholungen |
In manchen Fällen kann die Anzahl der Zeichen im RegEx nicht genau festgelegt werden. |
[6-9]* |
Zeichenklasse im RegEx negieren |
Um bestimmte Zeichen als Treffer in regulären Ausdrücken auszuschließen, die normalerweise für ein oder mehrere beliebige Zeichen stehen, verwenden Sie den Negator „^". |
[^M]ut Im Gegensatz zum Wort „Mut” bietet „Wut” die erforderliche Übereinstimmung. |
RegEx mit Platzhaltern |
RegEx verwendet Platzhalter mit unterschiedlichen Bedeutungen. |
Miriam .*Musterfrau |
RegEx mit Alternativen |
Ausdrücke, die alternative Treffer enthalten. |
Der Kaffee ist (wunderbar|nicht trinkbar) |
RegEx mit Gruppen |
Durch das Einklammern von Zeichen oder Zeichenketten in runde Klammern können Gruppen in regulären Ausdrücken gebildet werden, die als ein Muster behandelt werden. |
cd(ef)+ |
RegEx mit Verschachtelungen |
Verschachtelte Gruppen drücken vielschichtige Beziehungen zwischen Zeichen und Sonderzeichen aus. |
(Espresso (Doppio|Tonic)|Caffe (Latte|Mocha)) |
Regular Expression: Praktische Onlinetools
Mithilfe der folgenden Programme testen Sie Ihre eigenen RegEx-Anweisungen, um sie bei Bedarf anzupassen:
- Auf RegExR geben Sie reguläre Ausdrücke in einer interaktiven Umgebung ein und wählen verschiedene Optionen und Modifikatoren, um ihr Verhalten zu steuern. Sie können Text in das Tool eingeben und sehen, welche Teile des Textes durch den regulären Ausdruck abgedeckt werden.
- Mit RegEx101 erstellen, testen und debuggen Sie reguläre Ausdrücke. Die Website bietet eine interaktive Umgebung – einfach RegEx eingeben und verschiedene Optionen und Modifikatoren auswählen, um das Verhalten zu steuern!
- Auch auf RegEx Testing können Sie reguläre Ausdrücke kreieren, prüfen und bei Bedarf debuggen. Die Website bietet ähnliche Funktionen wie andere RegEx-Online-Tools, verfügt aber über einzigartige Funktionen wie RegEx-Tests und eine Bibliothek.
Fazit: RegEx bietet Ihnen zahlreiche Anwendungsmöglichkeiten
RegEx kommen in fast allen Programmiersprachen und jedem Texteditor zum Einsatz, um die Suche und Verarbeitung von Texten zu automatisieren. Mithilfe regulärer Ausdrücke können Sie auch komplexe Suchmuster definieren, um gezielt nach bestimmten Textstellen zu suchen. Es empfiehlt sich daher, sich mit der Syntax und den Anwendungsmöglichkeiten von RegEx vertraut zu machen, um effizienter mit Texten zu arbeiten.
Titelbild: Moyo Studio / iStock / Getty Images Plus