RegEx für schlaue Faultiere

RegEx für schlaue Faultiere

Reg Ex ist englisch für regular expressions zu Deutsch: Reguläre Ausdrücke. Reguläre… was?

Reguläre Ausdrücke basieren auf einer formalen Sprache, die verwendet wird, um Muster für übereinstimmende Zeichenketten oder Teilzeichenketten im Text aufzufinden.

Um einfache Informationen in einer Textdatei zu finden, werden häufig einfache Suchfunktionen einsetzt, die jeder aktuelle Editor zur Verfügung stellt. Was aber tun, wenn das Suchszenario nicht so einfach ist? Was, wenn man z.B. nicht nach einer bestimmten Ziffer, sondern nach allen Ziffern in einer Textdatei suchen möchte? Oder wenn alle Tags in einem Dokument gefunden und entfernt werden sollen?

Kein Problem!

Man muss kein Programmierer sein, um das hinzubekommen. Man benötigt lediglich ein bisschen Wissen über reguläre Ausdrücke und ein klares Bild von dem, was man in der Textdatei suchen möchte. Dieser Blog gibt einen schnellen Überblick über reguläre Ausdrücke und wird dem Leser ermöglichen, selber einen ersten regulären Ausdruck zu schreiben und zu verwenden. Versprochen!

Ich kann meine eigenen regulären Ausdrücke schreiben?

Klar, es gibt eine ganze Reihe von Online-Tools, die dabei helfen, reguläre Ausdrücke (auch: regular expressions oder RegEx) zu schreiben, zu testen und zu korrigieren. RegEx Pal ist eines davon. Die Funktionsweise solcher Tools ist recht einfach. Es gibt ein Feld, in das man den regulären Ausdruck schreibt und ein weiteres Feld, in das man den Text einfügt, auf den man den regulären Ausdruck anwenden möchte. Normalerweise werden die Teilzeichenfolgen, auf die Ihr regulärer Ausdruck zutrifft, im Textfeld hervorgehoben (siehe das Beispiel unten).

Tool: RegEx Pal, Gedicht "Faultier" von Ingrid Drewing

Aufwärmen mit RegEx-Grundlagen

Nachfolgend einige Grundregeln, die helfen, erste regulären Ausdruck zu schreiben. Die Tabelle enthält verschiedene Beispiele für reguläre Ausdrücke. Der fett gedruckte Text markiert die Teilzeichenketten, auf die ein regulärer Ausdruck zutrifft und die somit vom regulären Ausdruck gefunden werden.

Regulärer Ausdruck Beispiel
[a-z] das Faultier, die Faultiere
[A-Z] das Faultier, die Faultiere
[0-9] 2 Faultiere
^da das Faultier hängt an einem Ast
t$ das Faultier hängt an einem Ast
odou?r odor, odour
oo*w woow wow wooooow
wo+w woow wow wooooow
b.cken backen bocken bücken

Erläuterungen:

eckige Klammern [] passen zu einem Satz von Zeichen

Das Symbol ^ entspricht dem Anfang der Zeile

$ entspricht dem Ende der Zeile

? macht das vorangehende Zeichen im regulären Ausdruck optional

* stimmt mit dem vorhergehenden Zeichen null oder mehrfach überein

+ entspricht einem oder mehreren Vorkommen des vorhergehenden Zeichens

. passt zu jedem Zeichen

Um zu üben, einfach einen regulären Ausdruck aus der obigen Tabelle auswählen und in das RegEx Pal Werkzeug einfügen oder tippen. Keine Sorge, das klappt in Nullkommanix.

Und so geht’s: Reguläre Ausdrücke verwenden!

Nun, da wir aufgewärmt sind, können wir eine erste Aufgabe mit Hilfe von regulären Ausdrücken lösen. Wir benutzen gerne den Notepad++ Editor. Wer mag, kann hier eine kostenlose Version herunterladen: Notepad++

In Notepad++ bitte so vorgehen: 

  • Textdatei im Notepad++ Editor öffnen (z.B. unseren ‚Faultier‘-Beispieltext)
  • klicken Sie auf die Suchfunktion im Menü
  • klicken Sie auf Suchen
  • Unter Suchmodus: Regulärere Ausdrücke anwählen

SUPER! Wir befinden uns im Suchmodus für reguläre Ausdrücke. Das bedeutet, dass wir einen regulären Ausdruck in das Feld Suchen nach schreiben können und Notepad++ findet alle Zeichenfolgen und Teilzeichenfolgen, die unserem Muster für reguläre Ausdrücke entsprechen.

Die heutige Aufgabe ist es, alle Großbuchstaben und alle Ziffern in unserer Datei zu finden. Hierzu können die Informationen aus dem Abschnitt „Aufwärmen mit RegEx-Grundlagen“ verwendet werden. Einfach einen regulären Ausdruck der Wahl in das Feld Suchen nach eintragen oder kopieren und auf alle in aktiver Datei suchen klicken.

Tool: Notepad++, Gedicht "Faultier" von Ingrid Drewing

Wenn alles gut gegangen ist, sollte das Ergebnis ungefähr so aussehen, wie in dem unteren Screenshot. Notepad++ hat alle Zeilen gefunden, die dem folgenden Muster entsprechen: [A-Z0-1] Stimmt alles? Dann: Herzlichen Glückwunsch, Sie haben es geschafft!

Real Life Szenarien für RegEx

Eines vorweg: Die Syntax regulärer Ausdrücke ermöglicht sehr viel komplexere Suchszenarien, die wir nicht in einem kurzen How-To-Blog beschreiben können.

Unsere Computerlinguisten verwenden reguläre Ausdrücke sehr gerne für maschinelle Übersetzungsszenarien zur Datenbereinigung, Datenanonymisierung und anderen Aufgaben, die mit Datenextraktion und -bereinigung verbunden sind.

Möchten Sie noch mehr über den Einsatz regulärer Ausdrücke oder Möglichkeiten der Datenaufbereitung für die maschinelle Übersetzung erfahren? Dann schauen Sie sich doch mal in unseren digitalen Qualifizierungsbereich um oder kontaktieren Sie uns gerne direkt.

Titelbild: von Javier Mazzeo auf Unsplash

Related Posts