Reguläre Ausdrücke

Montag 8. April 2019 von Torsten

In diesem Artikel geht es (was für eine Überraschung) um “reguläre Ausdrücke“.

Statt hier jetzt viele Worte für eine Beschreibung zu verlieren was sich hinter diesem Begriff verbirgt, schauen wir besser direkt einige Praxisbeispiele an…

Zirkumflex und Dollarzeichen

Für die folgenden Experimente erzeugen wir eine Datei mit dem Namen “story.txt“ mit folgendem Text:

Zeile 1 = Dornröschen war eine Prinzessin.

Zeile 2 = Hänsel war der Bruder von Gretel.

Jetzt öffnen wir ein Terminal und nutzen folgenden Befehl:

  • grep ^Dornröschen story.txt

Das Zeichen Zirkumflex findet sich übrigens links neben der Eins und danach bitte auch einmal auf die Leertaste hauen (oder sanft drücken geht auch :-)

Der reguläre Ausdruck den wir hier genutzt haben, passt nur am Satzanfang. In unserer Datei steht “Dornröschen“ ja auch am Anfang. Suchen wir doch jetzt mal nach “Gretel“…

  • grep ^Gretel story.txt

Anders als beim ersten Beispiel wird jetzt nichts ausgegeben. Zirkumflex sucht also immer am Satzanfang nach einem Wort.

Per Dollarzeichen wird am Satzende gesucht.

  • grep Gretel $ story.txt

Obwohl in meinen Experimenten im Terminal erst eine Fehlermeldung ausgegeben wird (Datei oder Verzeichnis nicht gefunden) wird die richtige Zeile dann doch gefunden und das Suchwort (hier also Gretel) hervorgehoben.

Sternchen für den regulären Ausdruck

Nun ergänzen wir in unserer Datei wie folgt:

Zeile 3 = Gretel mag gerne Lebkuchen.

Im Terminal suchen wir jetzt nochmal nach Gretel mit folgendem Befehl:

  • grep Gretel* story.txt

Nun werden beide Zeilen die das Wort Gretel enthalten angezeigt und genau so sollte es sein.

Wortsuche in Dateien

Natürlich kann grep auch für eine Wortsuche in der Datei genutzt werden – egal wo das Wort steht.

  • grep Hänsel story.txt
  • grep war story.txt

Das zweite Beispiel findet die Zeilen in denen das Wort “war“ vorkommt. Die Suche ohne Dateinamen führt dazu, dass sich grep auf die Standard-Eingabe bezieht und das ist im Normalfall die Tastatur. Das Suchwort müsste also eingetippt werden und dann würde es grep auch finden.

Zurück zur Eingabeaufforderung

Nachdem letzten Experiment bleibt man im grep Programm hängen. Zurück zur Eingabeaufforderung geht es mit der Tastenkombination “Steuerung“ und “C“.

Wortsuche in Dateien – Teil 2

  • grep ‚\Dornröschen war‘ story.txt

So geht es auch. Gefunden wird jetzt nicht der Satz “Dornröschen ist eine Prinzessin“. Wer diesen Satz in die Textdatei einfügt wird es merken. Es wird nur der Satz mit “Dornröschen war“ gefunden und angezeigt…

Für einen ersten kleinen Einstieg in das Themenfeld Reguläre Ausdrücke soll es das gewesen sein.

Alles weitere (vielleicht) in einem späteren Artikel.

Dieser Beitrag wurde erstellt am Montag 8. April 2019 um 08:00 und abgelegt unter Allgemein. Kommentare zu diesen Eintrag im RSS 2.0 Feed. Sie können zum Ende springen und ein Kommentar hinterlassen. Pings sind im Augenblick nicht erlaubt.

1 Kommentar über “Reguläre Ausdrücke”

  1. Ludwig schrieb:

    Die Bezeichnung „Regulärer Ausdruck“ ist eine unglückliche und m.E. missverständliche Eindeutschung von „regular expression“.

    Nach der deutschen Bezeichnung „Regulärer Ausdruck“ sollte man einen „Ausdruck“ erwarten, der einer „Regel“ entspricht.

    Das ist jedoch nicht der Fall! Eine „regular expression“ ist ein Ausdruck, der eine Regel _enthält_ bzw. _beschreibt_. Also sowas wie eine „Ausgedrückte Regel“.

    Und erst mit Befehlen wie „grep“ oder „find“, gefolgt von einer „regular expression“, werden dann Ausdrücke gefunden, die dieser Regel entsprechen.

    MfG Ludwig

Kommentar schreiben