Lesezeit 3 Minuten

Reguläre Ausdrücke (Englisch: „regular expression“, abgekürzt RegEx) stellen in der Webentwicklung ein leistungsfähiges Instrument dar. Sie dienen insbesondere der Durchsuchung, Prüfung und Bearbeitung von Zeichenketten (Strings). Ausdrücke wie !#$%&’*+/ ähneln den Hieroglyphen bei einem Wutausbruch einer Comicfigur, die typischerweise über den Köpfen zu sehen sind. Deswegen fällt Einsteigern das Verstehen und Schreiben anfangs schwer. Erfahren Sie jetzt mehr über die regulären Ausdrücke.

Was ist ein regulärer Ausdruck?

Eine RegEx-Anweisung besteht aus der Aneinanderreihung von Zeichen mit einer bestimmten Bedeutung. Wenn Sie in Texten oder einer Zeichenkette nach einem bestimmten Muster suchen, finden Sie dieses durch die richtige Verwendung eines regulären Ausdrucks.

Es gibt technisch keine Begrenzung für die Zeichenlänge und Komplexität einer solchen Anweisung. Damit die ohnehin schwer lesbaren Ausdrücke übersichtlich bleiben, sollten Sie die Ausdrücke allerdings möglichst kurz halten und mit einem Kommentar versehen.

Was sind die Einsatzgebiete von regulären Ausdrücken?

Reguläre Ausdrücke gehören zum Alltag von Webentwicklern. Typische Einsatzgebiete:

  • Mit RegEx überprüfen Sie die Gültigkeit einer Syntax oder eines Formats.
  • RegEx eignen sich zur Zerlegung von Texten nach definierten Regeln.
  • RegEx überprüfen Webformulare auf gültige Eingaben durch den Nutzer, zum Beispiel die Gültigkeit einer Postleitzahl.

In vielen Entwicklungsumgebungen gibt es das Objekt RegEx mit weiteren Methoden.

Praxis: das Literal und die Metacharacter

Ein RegEx besteht aus Literalen und sogenannten Metacharactern mit spezieller Bedeutung. Sie dienen nicht der Darstellung von gesuchten Zeichen, sondern der Durchführung spezieller Anweisungen.

  • Literale sind Zeichen wie a b c d und Zahlen wie 1 2 3 4 5 etc., Literale finden sich selbst. Die Suche nach „ab“ bedeutet: Finde a, gefolgt von b.
  • Metacharaktere sind Zeichen wie [] {} () . \ ? * + | ^ $ und haben besondere Eigenschaften.
  • Beispiel: Der Punkt „.“ findet ein beliebiges Zeichen. Der Ausdruck a.b bedeutet: Finde a, gefolgt von einem beliebigen Zeichen, gefolgt von b.
  • Soll ein Metacharakter wie der Punkt als Literal verwendet werden, soll also nach Punkten im Text gesucht werden, wird der Metacharacter per Escape „\“ in ein Literal umgewandelt. Der reguläre Ausdruck a\.b bedeutet: Finde a, gefolgt von . und gefolgt von b.

Character Class Range

Sie können einen regulären Ausdruck vereinfacht mit einer Range angeben. [a b c d e] enthält erlaubte gesuchte Zeichen. Der Ausdruck steht für ein Zeichen: a oder b oder c oder d oder e. [a-e] führt zur gleichen Suche. Möglich sind [a-z], [A-Z], [1-9] und beliebige Teilmengen. Um bei Zahlen von 1 bis 9 die 5 nicht zu suchen, funktioniert der Ausdruck [1-46-9]. Damit ist der Bereich in 1 bis 4 und in 6 bis 9 aufgeteilt.

Wichtig: Der Ausdruck gilt immer nur für ein Zeichen. [1-13] sucht daher nicht nach 1 bis 13, sondern nur nach 1 bis 1 oder 3.

Character Class Negierung

Ein regulärer Ausdruck kann auch negiert sein, das heißt: [^a] durchsucht eine Zeichenkette nach Zeichen, die nicht a sind. [^a-d] findet einzelne Zeichen, außer den Buchstaben a bis d.

Freebie Character Classes

Weitere Vereinfachungen:

  • Die Suche nach einer Ziffer [0-9] kann mit \d
  • Die Suche nach alphanumerischen Zeichenketten mit [0-9A-Za-z_] oder kurz mit [\w].

Effizientere Ausdrücke mit Multipliers erstellen

Für die Multiplier kommen geschwungene Klammern {} zum Einsatz. a{4} sucht nach aaaa.

Hinweis: [abc] {3} sucht nach dem kartesischen Produkt, heißt: aaa, aab, aac, aba, abb etc.

Multiplier & Ranges

Durch die Kombination lässt sich ein Ausdruck wie [xyz]{5} erstellen. Gesucht werden fünf Zeichen, jedes davon kann x,y oder z sein.

Quantifier

Das Zeichen ? macht das vorangegangene Zeichen optional. Das Zeichen wird dem Ergebnis, falls vorhanden, hinzugefügt: abc? passt zu ab oder abc. Es gibt weitere Varianten mit \?, ?? und ?+.

Ein komplexeres Beispiel: Validierung von E-Mail-Adressen

Die Validierung einer eingegebenen E-Mail-Adresse erfordert einen komplexeren Ausdruck. Tatsächlich verwenden Sie im Formular einfach input type=email. Im Hintergrund findet die Prüfung allerdings mit einem regulären Ausdruck wie folgendem statt:

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

Für die Validierung von E-Mail-Feldern finden Sie im Netz weitere, mehr oder weniger strikte reguläre Ausdrücke. Der Ausdruck vor dem @-Zeichen definiert die erlaubten Zeichen für den verwendeten Namen, die auf das @ folgenden für den Anbieternamen; dann folgen der „.“ und weitere Zeichen.

RegEx – Zusammenfassung

Reguläre Ausdrücke sind ein komplexes Thema und bringen Anfänger schnell zum Schwitzen. Im Netz finden Sie Antworten auf spezielle Fragestellungen. Am besten durchsuchen Sie das Internet nach benötigten Ausdrücken. Zum Üben und Lernen der RegEx-Befehle gibt es gute Tutorials wie auf regexone.com. Damit entwickeln Sie ein Gefühl für die umfangreichen Möglichkeiten bei der Arbeit mit RegEx-Befehlen.

 

Bildnachweis: Photo by Artem Sapegin on Unsplash

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Die von Ihnen hier erhobenen Daten werden von der Host Europe GmbH zur Veröffentlichung Ihres Beitrags in diesem Blog verarbeitet. Weitere Informationen entnehmen Sie bitte folgendem Link: www.hosteurope.de/AGB/Datenschutzerklaerung/