RegEx

Aus Wiki
Wechseln zu: Navigation, Suche

Definition

Die Bezeichnung "RegEx” ist die Kurzform von "Regular Expression" und kann mit "regulärer Ausdruck" ins Deutsche übersetzt werden. Der Begriff stammt aus der theoretischen Informatik und dient in der Praxis dazu, bestimmte Zeichenketten, beispielsweise in einem Text, zu behandeln beziehungsweise zu prüfen.

Für den Nutzer ist eine solcher Zeichenkettenvergleich oft nicht sichtbar. Wird zum Beispiel eine Suche in einem Text ausgeführt oder ein neues Passwort vergeben, stehen dahinter oft RegEx. So wird eine "Regular Expression" beispielsweise dann angewandt, wenn eine Passwort Policy in einer Software hinterlegt ist, die bestimmte Zeichenkombinationen für Passwörter vorgibt. Für eine solche Passwortregel kann der Ausdruck wie folgt aussehen:

(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$"

In dieser Regel stecken zahlreiche Vorgaben, zum Beispiel die Mindestlänge von 8 Zeichen und die Benutzung von Groß- und Kleinbuchstaben. So bedeutet zum Beispiel der Ausdruck .{8,}, dass ein beliebiges Zeichen (symbolisiert durch den Punkt) acht mal oder häufiger vorkommen soll ({8,}).

RegEx Beispiel.png

Abbildung mit RegEx Beispiel, Autor: seobility

Wie das Beispiel zeigt, sind die Art der Zeichen und ihre Funktionen in RegEx komplex und gleichermaßen leistungsfähig.

Ein weiteres Beispiel für die Benutzung von Regular Expressions im digitalen Alltag ist die sogenannte Wildcard. Das Zeichen "*" steht in zahlreichen Suchanwendungen (z.B. bei Google) für ein beliebiges Zeichen bzw. einen beliebigen Begriff. Dieses eine Zeichen ist vielen Benutzern bekannt, darüber hinaus sind reguläre Ausdrücke dem durchschnittlichen User aber kaum vertraut.

Zeichen und Pattern - Bestandteile eines RegEx

Einzelne Zeichen beschreiben in einem regulären Ausdruck Funktionen. Eine Gesamtheit solcher Zeichen ergibt das sogenannte Pattern. Dieses Pattern wird auf eine Zeichenkette in einem Text angewandt und gibt zurück, ob diese Zeichenkette die Angaben im Pattern erfüllt oder nicht. Im Anschluss dieser Prüfung kann sowohl bei positiver als auch bei negativer Erfüllung eine beliebige Funktion angeknüpft sein. Ein regulärer Ausdruck wird daher oft in einer Bedingung einer Software-Implementation verwendet.

In der Praxis ist dies vor allem für das Suchen und Ersetzen bestimmter Zeichenketten relevant. Vor allem in Standardwerkzeugen zur Serveradministration wie "grep" wird das Suchen und Ersetzen von Zeichenketten benötigt. Hier ist die Nutzung regulärer Ausdrücke seit Beginn der Entwicklung vorgesehen.

In den meisten Programmiersprachen, aber auch in Werkzeugen zur Verarbeitung von Text kann ein regulärer Ausdruck ebenfalls verwendet werden, um Anforderungen umzusetzen. Auf diese Weise können komplexe Implementationen von bedingten Funktionen oftmals durch kurze reguläre Ausdrücke und deren Behandlung ersetzt werden.

Verkettung von regulären Ausdrücken

RegEx Ausdrücke können verkettet werden und so komplexe Anforderungen an eine Zeichenkette wiedergeben. Dabei gibt es sogenannte Operatoren, die die regulären Ausdrücke miteinander verbinden. Hierzu zählt beispielsweise die Beschreibung der Alternative, die mit "|" umgesetzt wird. Sie entspricht dem Oder-Operator aus der Logik.

Die aus der Logik bekannte "Und"-Verknüpfung wird bei Regular Expressions Konkatenation oder Verkettung genannt und ohne weiteres Zeichen als Operator durch ledigliches Aneinanderreihen von Ausdrücken gekennzeichnet.

Durch ein solches Verknüpfen verschiedener RexEx Ausdrücke können mit nur wenigen Zeichen komplexe Abfrage-Mechanismen realisiert werden.

Quantoren in einer Regular Expression

Innerhalb einer Regular Expression gibt es weitere Operatoren, die vordefinierte Bedeutungen haben, allen voran die Quantoren. Sie geben Bedingungen für einen Ausdruck an, die die Anzahl eines bestimmten Zeichens oder einer Zeichenkette betreffen. Ein Fragezeichen (?) bedeutet zum Beispiel, dass der vorangegangene Ausdruck in einem Text entweder null mal oder genau einmal vorkommen soll. Dagegen bezeichnet das eingangs bereits erwähnte Wildcard-Zeichen (*) das beliebig häufige Vorkommen des vorangegangenen Ausdrucks. Dazwischen können alle Kombinationen von obligatorischen oder verpflichtenden Vorkommen bestimmter Zeichenketten in einem Ausdruck definiert werden. Dazu steht die Zeichenkombination {n,m} zur Verfügung. Wird n oder m in einem Ausdruck leer gelassen, entspricht das der Bezeichnung "beliebig", n steht für das Minimum der Zeichenanzahl, m für das Maximum. Dieses generische Vorgehen ermöglicht es, jede Anforderung unabhängig von ihrer Praxisbedeutung in einen regulären Ausdruck zu implementieren. Die Anwendung der Regular Expressions in der Praxis erfordert jedoch ein hohes Abstraktionsvermögen.

Weiterführende Ausdrücke

Hat man die Grundsätze der regulären Ausdrücke verinnerlicht, lassen sich einfache Ausdrücke schreiben und sicher anwenden. Allerdings kann die Welt der Regular Expressions noch weitaus mehr. So können Suchen zum Beispiel bedingt abgebrochen oder Gruppen von Zeichensätzen rückwärts referenziert werden. Da die Sprache der regulären Ausdrücke für den Menschen nicht lesbar ist und sich die Logik der Ausdrücke nicht intuitiv erschließt, ist die sichere Verwendung der RegEx-Semantik den Experten auf dem Gebiet vorbehalten. Beherrscht man jedoch die regulären Ausdrücke, können damit zahlreiche Anforderungen abgedeckt werden. Die Nutzung der Sprache ermöglicht zum Beispiel eine einfache Webserveradministration oder Verarbeitung von Text.

Beispiel einer Regular Expression in der Webserveradministration

Ein Beispiel für die Anwendung von regEx Ausdrücken ist das Modul mod_rewrite für den Apache Webserver. Es wird dazu verwendet, eingehende URL-Anfragen auf den entsprechenden Bereich eines Webauftritts umzuleiten. Betrachtet wird dabei die gesamte URL inklusive aller Unterangaben und Parameter.

Die Regeln, die für diese Umleitungen bestimmt werden, werden in der .htaccess-Datei des Webservers hinterlegt. Eine Angabe, die dort häufig zu finden ist, lautet:

RewriteEngine on RewriteRule (.*)\.html$ /cgi-bin/script.pl?var=$1

Dieser Ausdruck bedeutet, dass sämtliche Anfragen auf eine HTML-Datei auf ein Script umgeleitet werden, wobei die anfragende URL als Parameter mit übergeben wird. Die Syntax dieser Regel basiert auf regulären Ausdrücken, welche die komplexe Steuerung eines Webservers ermöglichen.

Bedeutung der Regular Expression für die SEO

Das oben beschriebene Modul “mod_rewrite” ist für die Suchmaschinenoptimierung von hoher Bedeutung, da es ermöglicht, dass komplexe dynamische URLs in “sprechende” URLs umgeschrieben werden. Solche einfachen URLs sind deshalb wichtig, da sie Usern und Suchmaschinen dabei helfen, die inhaltliche Struktur und Hierarchie einer Website zu verstehen. Aus diesem Grund ist die Kenntnis der Regular Expressions auch im Bereich der Suchmaschinenoptimierung vorteilhaft.

Weiterführende Links

Ähnliche Artikel