Reguläre Ausdrücke

From DHVLab

Zeichenfolgen können beschrieben, gesucht und ersetzt werden. Dies erfolgt durch den Einsatz regulärer Ausdrücke (Regular Expressions, RegEx). Verwendung finden RegEx häufig in Webanwendungen (z.B. Perl, PHP) oder in Unix-Skripten:

"Reguläre Ausdrücke (oder kurz: Regexps von engl. regular expressions) stellen in der Programmierung verallgemeinerte Suchmuster dar. Mithilfe dieser Suchmuster können Sie beispielsweise Variableninhalte durchsuchen und bestimmte Inhalte daraus herausziehen oder ersetzen. [...] Reguläre Ausdrücke sind auch ein mächtiges Mittel, um große Datenbestände nach komplexen Suchausdrücken zu durchforsten. Beispielsweise könnten alle Begriffe gesammelt werden, die mit „A“ beginnen und auf „tion“ oder „tung“ enden, was mit gewöhnlichen Stringfunktionen nur mühselig zu bewerkstelligen wäre."[1]

Einfache Ausdrücke

Eckige Klammern bezeichnen in einer Zeichenfolge eine Alternative, z.B. einen alternativen Buchstaben oder eine alternative Zahl. Einige kurze Beispiele zur Illustration:

"Hans": Ha[un]s -> Das Suchergebnis umfasst sowohl das Wort "Haus" als auch den Namen "Hans".
"1990": 199[0-9] -> Das Suchergebnis gibt alle Jahre aus, die zum entsprechenden Jahrzehnt gehören.

Grundsätzlich gilt: Es können beliebig viele RegEx aufeinander folgen.
Ist beispielsweise nur das Jahrhundert bekannt, können die Jahrzehnte und Jahre wie folgt umschrieben werden:

19[0-9][0-9] -> Das Suchergebnis gibt alle Jahre von 1900 bis 1999 an.

Ausgabe einer dreistelligen Zahl, deren Ziffern beliebig sein können, jedoch ohne 0:

[1-9]{3} -> Das Suchergebnis gibt alle Zahlen aus, die zwischen 111 und 999 liegen.


Eine kleine Auswahl an weiteren gängigen Zeichen in RegEx:

Zeichen Funktion Beispieleingabe Beispielausgabe
? kein oder genau ein Vorkommen Ha?mmer Hmmer oder Hammer
+ mindestens ein oder beliebig viele Vorkommen Ham+er Hamer, Hammer, Hammmer, etc.
* kein oder beliebig viele Vorkommen Ham*er Haer, Hamer, Hammer, Hammmer, etc.
{2} exakt zwei Vorkommen Ham{2}er Hammer
{1,3} mindestens ein, maximal drei Vorkommen Ham{1,3}er Hamer, Hammer, Hammmer


  • \ maskiert die Sonderfunktion von Zeichen wie +, *, etc., um nach diesen Zeichen selbst suchen zu können.
  • ^ markiert den Anfang eines zu durchsuchenden Strings ("ab hier").
  • $ markiert das Ende eines zu durchsuchenden Strings ("bis hier").


(Ein) Online-Tool zum Testen von regulären Ausdrücken vor dem Implementieren:
regex101.com

Ausführliche Informationen:

"Die regulären Ausdrücke" in DH-Lehre
Ein gutes RegEx-Tutorial