Der Anfängerleitfaden zu regulären Ausdrücken

Index
  1. Wo kann ich RegEx verwenden?
  2. Muster finden
  3. Bereiche
  4. Flucht
  5. Anker und Grenzen

Haben Sie schon einmal versucht, in einem Text ein wiederkehrendes Muster zu finden? Vielleicht haben Sie dazu die Suchfunktion Ihres Browsers oder Textverarbeitungsprogramms verwendet, aber wenn Sie etwas Komplexeres finden müssen, kann das wie die Suche nach der Nadel im Heuhaufen sein.

Glücklicherweise gibt es eine Möglichkeit, präzise Muster in Texten bis hin zum Zeichen zu erkennen. Diese Methode nennt sich reguläre Ausdrücke (RegEx) und macht Sie zum Meister der Textsuche.

Lesen Sie auch: So verwenden Sie reguläre Ausdrücke, um die Produktivität Ihrer täglichen Aufgaben zu verbessern

Wo kann ich RegEx verwenden?

Obwohl sie durch Unix und Linux populär wurden, sind reguläre Ausdrücke in einer Vielzahl von Paketen verfügbar, darunter auch in Microsoft Word.

Reguläre Ausdrücke werden vor allem in mehreren namhaften Linux-Programmen verwendet, darunter grep, Awk und Sed.

Sie möchten beispielsweise die USB-Geräte auf Ihrem PC überprüfen. Mit lspci wird Ihnen eine Liste aller Geräte angezeigt und Sie müssen die USB-Einträge selbst finden. Sie können stattdessen Folgendes verwenden, um nur die USB-Geräte anzuzeigen:

Dies ist das einfachste Beispiel für RegEx in Aktion. Es ist die beliebteste Art, reguläre Ausdrücke im Terminal zu verwenden, aber nicht die einzige. Heutzutage finden Sie RegEx-Unterstützung in vielen verschiedenen Arten von Software, von Texteditoren bis zu Dateimanagern.

Muster finden

Sie haben wahrscheinlich das *-Zeichen verwendet, das als Platzhalter fungiert, wenn Sie Dateien oder Ordner im Terminal auswählen. Um beispielsweise alle JPG-Dateien in einem Ordner aufzulisten, können Sie Folgendes verwenden:

Das RegEx-Äquivalent des Obigen wäre:

Um sowohl nach JPG- als auch nach PNG-Dateien zu suchen, verwenden Sie:

ls | grep -E "(\.jpg|\.png)"

Bereiche

Wenn Sie statt nach einem Muster nach einem bestimmten Zeichenbereich suchen möchten, können Sie dies tun, indem Sie ihn in Klammern definieren. Wenn Sie beispielsweise [a-z] als Ihr Muster würde dies mit jeder Zeichenfolge übereinstimmen, die aus beliebigen Kleinbuchstaben des Alphabets besteht.

Wie Sie vielleicht schon vermutet haben, [A-Z] würde nur Großbuchstaben auswählen. Um einen beliebigen Buchstabenbereich sowohl in Groß- als auch in Kleinbuchstaben auszuwählen, würde sich der Ausdruck ändern in [a-zA-Z].

Um eine bestimmte Anzahl von Instanzen Ihres Musters zu finden, können Sie diese in geschweiften Klammern angeben. {5} würde fünf Vorkommen Ihres Musters zurückgeben. Sie können auch Zahlenbereiche verwenden, so würde {5,10} Ihnen fünf bis zehn Instanzen anzeigen.

In regulären Ausdrücken können Sie auch nach Teilen einer Zeichenfolge mit zwei Zeichen suchen, die als Metazeichen bezeichnet werden. Sie ähneln den Platzhalterübereinstimmungen, die Sie möglicherweise in der Shell verwendet haben.

Der primäre ist der einfache Punkt, der für jedes andere einzelne Zeichen steht. Wenn Sie das Muster c.ll verwenden, würde es sowohl auf „cell“, als auch auf „cull“ und „call“ passen.

Wenn Sie nach einem Punkt ein Sternchen eingeben, können Sie damit eine unbegrenzte Anzahl von Zeichen abgleichen. Beispielsweise ergibt .*board sowohl für „keyboard“ als auch für „skateboard“, selbst wenn „key“ und „skate“ eine unterschiedliche Anzahl von Buchstaben haben.

Flucht

Möglicherweise ist Ihnen aufgefallen, dass wir in unserem Beispiel, in dem wir verschiedene Bilddateitypen ausgewählt haben, vor dem Punkt Backslashes verwendet haben („\.jpg“). So maskieren Sie Sonderzeichen in RegEx.

Wenn wir sie nicht verwenden würden, würde unser Muster nicht nur mit den Dateierweiterungen, also Zeichenfolgen wie „.jpg“ und „.png“, übereinstimmen, sondern auch mit „ajpg“ und „opng“. Denken Sie daran, dass . ein Platzhalter ist, der mit jedem beliebigen Zeichen übereinstimmt.

Anker und Grenzen

Mithilfe von Ankern und Grenzen können Sie genauer definieren, wonach Sie suchen.

Um nur das einzelne Wort „Computer“ zu finden, ohne dass davor oder danach andere Zeichen angehängt werden, sollten Sie das Muster als \ definieren.

Sie können auch gezielt nach Mustern suchen, die am Anfang oder Ende der Zeile stehen. Dies erreichen Sie mit den Zeichen ^ bzw. $.

Wenn Sie also nur die Einträge finden möchten, bei denen das Wort „Computer“ am Zeilenanfang vorkommt, würde Ihr Muster wie folgt aussehen: ^Computer. Umgekehrt, wenn es am Zeilenende steht, würde sich das Muster in Computer$ ändern.

Dies sind die einfachen Regeln von RegEx, die Sie auch mischen können, um genau die Muster zu finden, nach denen Sie suchen. Sie können mit einer einzigen Textzeichenfolge nach Zeichenbereichen am Anfang einer Zeile oder abwechselnden Wörtern am Ende, bestimmten Daten oder einem Jahresbereich suchen.

Vergessen Sie nicht, sich unseren Spickzettel für reguläre Ausdrücke anzusehen, um reguläre Ausdrücke zu meistern.

Schreibe einen Kommentar

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

Go up