Skip to main content

RegEx

Was bedeutet RegEx?

Die Abkürzung RegEx steht für den englischen Begriff Regular Expression und bedeutet auf Deutsch regulärer Ausdruck. Als regulärer Ausdruck wird in der theoretischen Informatik sowie der formalen Sprachtheorie eine Zeichenfolge bezeichnet, mit der ein Suchmuster definiert wird. Suchmuster werden von Suchalgorithmen für die Suche nach bestimmten Zeichenfolgen genutzt. Beispiele sind die Funktionen “Suchen” und “Suchen und Ersetzen” in Textverarbeitungsprogrammen.

Entwickelt wurde das Konzept des RegEx in den 1950er Jahren vom amerikanischen Mathematiker Stephen Cole Kleene, der die Beschreibung einer regulären Sprache erstmals formalisierte und damit einen Grundstein für die maschinelle Textverarbeitung legte. Unix-Textverarbeitungsprogramme waren die ersten Programme, in denen reguläre Ausdrücke zur Anwendung gekommen sind. Seit den 1980er Jahren existieren verschiedene Syntaxen zum Erstellen von RegEx. Der sogenannte POSIX-Standard und die Perl-Syntax zählen zu den am weitesten verbreiteten Syntaxen dieser Art.

RegEx sind heute allgegenwärtig. Sie werden in Suchmaschinen verwendet, sie suchen und ersetzen Zeichenfolgen in Textverarbeitungen und werden in der lexikalischen Analyse eingesetzt. Viele Programmiersprachen bieten integrierte RegEx-Funktionen oder stellen diese über externe Bibliotheken bereit.

Grundlegendes Konzept des regulären Ausdruck

Ein regulärer Ausdruck ist ein Muster, das verwendet wird, um eine Reihe von Zeichenfolgen anzugeben, die für einen bestimmten Zweck benötigt werden. Die einfache Möglichkeit, eine endliche Menge von Strings anzugeben, besteht darin, ihre Elemente aufzulisten. Es gibt jedoch präzisere Möglichkeiten, die gewünschte Menge von Strings zu spezifizieren. Zum Beispiel kann die Menge, welche die drei Zeichenfolgen “Handel”, “Händel” und “Haendel” enthält, durch das Muster H(ä|ae?)ndel spezifiziert werden. Wenn es in den meisten Formalismen mindestens einen regulären Ausdruck gibt, der einer bestimmten Menge entspricht, gibt es eine unendliche Anzahl anderer regulärer Ausdrücke, die auch dieser entsprechen. Das bedeutet, die Spezifikation ist nicht eindeutig. Die meisten Formalismen bieten daher die folgenden Operationen zum Erstellen regulärer Ausdrücke.

Zum Beispiel das Boolesche “oder”, einen vertikalen Strich oder Balken “|” zum Trennen von Alternativen, Klammern zur Gruppierung von Zeichen und die sogenannten Quantifizierer *, + und ?, die angeben, wie oft ein vorhergehendes Zeichen auftreten darf. Diese Zeichen und Operatoren können zu beliebig komplexen Ausdrücken kombiniert werden. Zum Beispiel sind, um beim obigen Beispiel zu bleiben, H (ae? | Ä) ndel und H (a | ae | ä) ndel beides gültige Muster, die zu den gleichen Strings wie das erste Beispiel H (ä | ae?) ndel passen.

Metazeichen und Literalzeichen in RegEx

Ein RegEx wird häufig verwendet, um die spezifische Standard-Textsyntax zu bezeichnen. Jedes Zeichen in einem regulären Ausdruck wird als Metazeichen mit seiner speziellen Bedeutung oder als normales Zeichen mit seiner wörtlichen Bedeutung verstanden. Zum Beispiel in der RegEx A.
A ist ein Literalzeichen, das nur ‘A’ ist und der Punkt ‘.’ ist ein Metazeichen, das jedem Zeichen außer einem Zeilenumbruch entspricht. Dieser RegEx würde beispielsweise mit “A” oder “Ax” oder “A0” übereinstimmen. Zusammen können Metazeichen und Literalzeichen verwendet werden, um Textmaterial eines gegebenen Musters zu identifizieren oder eine Anzahl von Instanzen davon zu verarbeiten.

Die Musterübereinstimmungen können von einer genauen Gleichheit zu einer sehr allgemeinen Ähnlichkeit, gesteuert durch die Metazeichen, variieren. Beispielsweise ist “, .” ein sehr allgemeines Muster, [a-z] entspricht allen Buchstaben von ‘a’ bis ‘z’ und ist weniger allgemein und a ist ein genaues Muster wegen der Übereinstimmung nur mit ‘a’. Die Metazeichen-Syntax wurde speziell entwickelt, um vorgegebene Ziele in einer präzisen und flexiblen Weise darzustellen, damit die Automatisierung der Textverarbeitung mit einer Vielzahl von Eingabedaten in einer leicht zu typisierenden Form unter Verwendung einer Standard-ASCII-Tastatur gesteuert werden kann.

Ein sehr einfacher Fall eines regulären Ausdrucks ist, ein Wort zu finden, das in einem Texteditor auf zwei verschiedene Arten geschrieben wurde (siehe Beispiel oben). Mit den sogenannten Wildcards oder Platzhalterzeichen könnte dies auch erreicht werden. Wildcards sind aber in ihrem Muster begrenzter. Der übliche Kontext von Platzhalterzeichen besteht darin, ähnliche Namen in einer Liste von Dateien zu finden, zum Beispiel alle Personen mit dem Namen Mayer, Meier oder Meyer. RegExes werden normalerweise in Anwendungen verwendet, die allgemein Musterzeichenfolgen anpassen und etwa bestimmte Zeichen löschen sollen. Beispielsweise entspricht die RegEx ^ [\ t] + | [\ t] + $ überschüssigen Leerzeichen am Anfang oder Ende einer Zeile und wird häufig verwendet.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG