Regulärer Ausdruck (RegEx) – Wohin des Wegs?

In vielen Bereichen lassen sich Abfragen nach regulären Ausdrücken, RegEx oder auch RegExp genannt durchführen. Doch was verbirgt sich dahinter und warum macht es Sinn diese einzusetzen? Reguläre Ausdrücke sind Zeichenketten zur Beschreibung von Mengen. Regex sind gerade in der Informatik ein sehr gern angewandtes Mittel damit bestimmte Zeichenketten auf dessen Existenz überprüft werden können. Erfinder ist der Logiker und Mathematiker Stephan Kleene. Er benutze eine Notation der regulären Ausdrücke bereites 1956 in einem Schriftstück über die Repräsentation von Ereignissen in neuronalen Netzen und endlichen Automaten. RegEx finden sich in diversen Programmiersprachen, Texteditoren und sonstigen Umgebungen wieder. Im Texteditor, z. B. Notepad++, lassen sich die regulären Ausdrücke auch zum Suchen und Ersetzen nutzen.

Im Online Marketing setzen insbesondere die Webanalysten im Rahmen der Webanalyse auf die Verwendung der RegEx da so mit Hilfe von Filtern entsprechende Datenansichten aufgebaut werden können. Zudem lassen sich Trafficquellen oder andere Segmente definieren für eine detailreichere Berichterstattung. Neben der Verwendung in Google Analytics, oder anderen Analyse Tools, können die regulären Ausdrücke (Regex) ebenfalls im Google Tag Manager eingesetzt werden und erhöhen somit die vorhandenen Bordmittel ins unermessliche. Eis ist sicher, Klammern und Backslashes tragen bei den regulären Ausdrücken eine große Rolle.

Wie ist der RegEx (reguläre Ausdruck) aufgebaut?

Reguläre Ausdrücke sind bestimmte Suchmuster (Patterns) einer Zeichenkette um diverse Zeichenkombinationen herauszufinden, oder auch mit einer anderen Zeichenfolge zu ersetzen.

Der Aufbau ist eigentlich recht einfach, denn es gibt nur drei Teile:

  1. Delimiter à Schrägstrich am Anfang und Ende des Ausdrucks
  2. Pattern à Das eigentliche Muster nach dem gesucht wird
  3. Modifiern à Hier gibt es z. B. einige Parameter wie das „i“ (ignorieren, Bsp.: Groß- / Kleinschreibung) oder auch dem „g“ (auffinden aller Stellen, nicht nur der ersten.)
Beispiel: Eierspeise
Modifier Bedeutung
/ei/ Das hintere „ei“ wird gefunden, wegen der Groß- / Kleinschreibung
/ei/i Hier wird das erste „Ei“ gefunden, da die Groß- / Kleinschreibung ignoriert wird, durch das zusätzliche „i“ in der Anweisung.
/ei/gi Mit dieser Anweisung werden sämtliche „ei“ gefunden, das erste und das letzte.

Dies war nur ein kleines, kurzes Beispiel um die regulären Ausdrücke vereinfacht darstellen zu können. Es handelt sich immer um eine Mischung aus zu suchenden Zeichen und Metazeichen (Sonderfunktionen).

Grundlagen der Regulären Ausdrücke (RegEx)

Eine komplette Übersicht was mit regulären Ausdrücken (RegEx) angestellt werden kann ist in der nachfolgenden Tabelle zu finden:

Syntax Definition Beispiel Erklärung
123abc Ganz normale Zeichen /ei/ Gesucht, die Zeichenfolge „ei“ in z. B. drei
. Einfacher Platzhalter für jedes beliebige Zeichen /./

/m.t/

Ein beliebiges Zeichen

Zeichenkette mit „m“, beliebiges Zeichen, „t“, z. B. „mit“ oder „mut“

[ ] Eigene Zeichenkette (Zeichen einer Auswahl) /[e]/

/[eis]/

/[eis ]/

Suche nach „e“

Suche „e“, „i“ oder „s“

Suche „e“, „i“, „s“ oder Leerzeichen

Ein Minus innerhalb der eckigen Klammern bezeichnet einen bestimmten Zeichenbereich /[1-5]/

/[a-zA-ZäÄöÖüÜß]/

/[A-Z0-7]/

/m[ea][iy]er/

Ziffer von „1“ bis „5“

Ein deutscher Buchstabe

Großbuchstabe oder Ziffer 0 bis 7

Gültig wäre meier, meyer, maier, mayer

| Alternativen /(ZDF|zdf)/

/Tor(wart|pfosten)/

„ZDF“ oder „zdf“, nicht aber „Zdf“

„Torwart“ oder „Torpfosten“

( ) Zusammenfassen von Ausdrücken /m(u|i)t/ „mut“ oder „mit“
\ Aufhebung der Metabedeutung des nachfolgenden Zeichens /\./ Statt nach einem Platzhalter wird nach dem Punkt gesucht, mit Hilfe des Backlashes wird so die Zuordnung verändert.
^ a)      Beginn einer Zeichenkette

b)      Negierung der angegebenen Zeichen

/^b/

/^Om/

/[^d]/

/^z[^bu]/

Das Suchmuster beginnt mit dem Buchstaben „b“

Findet „Om“ in „Oma und Opa“, aber nicht in „Opa und Oma“.

Ein beliebiges Zeichen außer „d“.

Alles was mit „z“ beginnt, außer „zb“ und „zu“.

$ Ende der Zeichenkette /r$/

/ung$/

/^$/

Zeichenketten, die ein „r“ als letztes Zeichen haben.

Findet „ung“ am Ende eines Suchbereichs.

Sucht leere Zeilen.

Wiederholungen von Zeichenketten, bzw. Zeichenklassen

Es gibt ebenfalls die Möglichkeit, sich Wiederholungen von bestimmten Zeichenketten anzeigen, oder ersetzen zu lassen. Wie dies geht ist in der nachfolgenden Tabelle ersichtlich:

Regulärer Ausdruck Bedeutung und Beispiel
cd{2} Der beschriebene Ausdruck muss in der angegebenen Zeichenklasse exakt zwei Mal vorkommen. Gefunden wird also ausschließlich „cdd“. Warum? Das c ist nicht mit dem d durch eine Klammer verbunden. Daher bezieht sich der Ausdruck nur auf das d.

Beispiel: c cd cdd dcdd cddd cdddd dcddddddddddd

cd{2,3} Der beschriebene Ausdruck muss mindestens zwei Mal und maximal drei Mal vorkommen. Gefunden würde also cdd und cddd, nicht aber ab oder cddddd.

Beispiel: c cd cdd dcdd cddd cdddd dcdddddddddde

cd{2,} Der genannte Ausdruck muss mindestens zwei Mal enthalten sein. Gefunden würde demnach cdd, cddd, cdddd, cdddddd und so weiter.

Beispiel: c cd cdd dcdd cddd cdddd dcdddddddddde

cd{,3} Bei dieser Anweisung darf der Ausdruck maximal drei Mal vorkommen. Gefunden würde also cdd und cddd, aber nicht cddddd.

Beispiel: c cd cdd dcdd cddd cdddd dcdddddddddde

cdb? Beim Fragezeichen ist es so, dass das voranstehende Zeichen optional ist. Das bedeutet, es kann vorkommen, muss aber nicht. Das Beispiel würde c und cd finden. Somit entspricht das Fragezeichen dem Ausdruck {0,1}.

Beispiel: c cd cdd dcdd cddd cdddd dcdddddddddded

cd+ Beim Plus ist es so, dass das voranhängende Zeichen Minimum einmal, aber eben auch mehrfach in der Zeichenkette vorkommen darf. Im Beispiel würde es somit cdd, cddd und so weiter finden. Das Plus entspricht dem Ausdruck {1,}.

Beispiel: c cd cdd dcdd cddd cdddd dcdddddddddde

cd* Wo es den Ausdruck {1} gibt, gibt es auch den Ausdruck {0}. Bei dem Zeichen * ist es so, dass das vorangenannte Zeichen beliebig oft, aber auch gar nicht vorkommen darf.

Beispiel: c cd cdd dcdd cddd cdddd dcdddddddddde

[cd]+ In diesem Beispiel finden sich Zeichenketten wie c, d, cd, dc, cdd, cdcdc und so weiter wieder. Es ist nicht verankert, dass sich gleiche Zeichen wiederholen müssen.
c[d]e+f Dieser Ausdruck findet Zeichenketten wie cdf, cef, cdef, cedf, cdeedf, cededede und so weiter.

Beispiel: cdef ccf cedf gh cddeeddef gh cdf gh cef

[0-9]{2,3} Die Zahlen in diesem Beispiel müssen sich nicht gleichen. Es werden alle Zahlen gefunden, die zwei oder drei Stellen haben, also die Zahlen von 10 bis 999, nicht aber zahlen wie 5,7.

Beispiel: 2,6 20 99 cd7c cd51c 567

Zu beachten gilt, dass immer die richtigen Klammern verwendet werden. Das Suchmuster selbst wird in eckige und ein bestimmter Bereich in geschweifte Klammern gesetzt.

Vordefinierte Zeichenklassen der regulären Ausdrücke (RegEx)

Die vorgenannten regulären Ausdrücke (RegEx) waren schon recht kompliziert. Es geht aber auch einfacher, mit kürzeren Ausdrücken, die schon vorgeschrieben sind und das ganze Procedere um ein vielfaches verkürzen und einfacher machen. Wichtig hierbei ist zu beachten, dass den vordefinierten Zeichenklassen immer ein Backslash vorangestellt ist.

Regulärer Ausdruck Bedeutung und Beispiel
\d Dieser Ausdruck steht für eine Ziffer, auch Digit genannt. Dies ist gleichbedeutend mit dem Ausdruck [0-9].

Beispiel: cde fgh cdefgh 0123456789-&

\D Dieser Ausdruck ist eine Negation des vorherigen und ist gleich den Ausdrücken [^0-9] und [^\d].

Beispiel: cde fgh cdefgh 0123456789-&

\w Bei diesem Ausdruck (Word) handelt es sich um einen Buchstaben, eine Ziffer oder einen Unterstrich. Mit dieser verkürzten Version wird der Ausdruck [A-Za-z0-9_] ersetzt.

Beispiel: : cde fgh cdefgh 0123456789-&

\W Der genannte reguläre Ausdruck bezeichnet wieder eine Negation des vorherigen Ausdrucks. Somit wird hier keine Ziffer, kein Buchstabe und auch kein Unterstrich gesucht. Folgende Ausdrücke, bzw. Zeichenklassen  werden somit ersetzt: [^\w] oder [^A-Za-z0-9_].

cde fgh cdefgh 0123456789-&

\s Der Ausdruck \s steht für (Space), also Tabstopp, Zeichensprünge, Leerzeichen, usw.
\S Wie man sich sicherlich denken kann, handelt es sich auch hier wieder um eine Negation des vorherigen Ausdrucks und steht für alle Zeichen, die kein Whitespace (Leerzeichen) sind, also [^\s].

Fazit: Reguläre Ausdrücke erleichtern die Arbeit um ein vielfaches

Gerade für Neulinge gestalten sich die regulären Ausdrücke (RegEx) etwas schwierig und stellen einen vor so manchen höheren Berg. Doch mit ein wenig Geduld und dem nötigen Eifer bekommt man recht schnell in die Routine mit regulären Ausdrücken (RegEx) um das richtige Suchmuster zu eruieren. Mit den vorgenannten Anweisungen lassen sich auf schnelle Art und Weise bestimmte Zeichenketten innerhalb eines Textes, oder Analysetools herausfinden. Eine lästige händige Überarbeitung wird somit hinfällig. In der Webanalyse lassen sich so URL-Bereiche in den Bereich Content-Gruppierung schicken. Es ist aber auch möglich Überprüfungen von bestimmten UTM-Parametern zu machen, wie z. B. „gclid, oder fbclid“ um diese dann später in die URL-Suchparameter aufzunehmen und diese auszuschließen. Am Ende sei gesagt, wer sich nicht mit regulären Ausdrücken beschäftigt und diese verwendet verschafft sich unnötig Arbeit.

markus-fritzsche-campixx
Markus Fritzsche

Markus Fritzsche ist ausgebildeter Fachinformatiker für Anwendungsentwicklung und beschäft sich mit der Erstellung von neuen Websiten und leistet eine Vielzahl an IT-Support. Er ist seit 2012 im Online Marketing Tätig, hier mit dem Schwepunkt SEO.