Der Anfängerleitfaden für Reguläre Ausdrücke

Intro To Regex Featured

Haben Sie jemals versucht, ein wiederkehrendes Muster in einem Textstück zu finden? Sie haben vielleicht etwas wie die Suchfunktion in Ihrem Browser oder Textverarbeitungsprogramm verwendet, aber wenn Sie etwas Komplexeres finden müssen, kann es sich anfühlen wie die Suche nach einer Nadel im Heuhaufen.

Zum Glück gibt es eine Möglichkeit, präzise Muster im Text bis hin zu den Zeichen herauszufiltern. Es nennt sich reguläre Ausdrücke (RegEx), und es ermöglicht Ihnen, ein Meister im Durchsuchen von Text zu werden.

Auch lesen: Wie man reguläre Ausdrücke verwendet, um die Produktivität in täglichen Aufgaben zu verbessern

Wo kann ich RegEx verwenden?

Obwohl Unix und Linux sie populär gemacht haben, stehen reguläre Ausdrücke in einer Vielzahl von Programmen zur Verfügung, einschließlich Microsoft Word.

regular-expressions

Reguläre Ausdrücke werden insbesondere in mehreren bemerkenswerten Linux-Programmen wie grep, Awk und Sed verwendet.

Zum Beispiel möchten Sie vielleicht die USB-Geräte auf Ihrem PC überprüfen. Mit lspci sehen Sie eine Liste aller Geräte, und Sie müssen die USB-Einträge selbst finden. Stattdessen könnten Sie Folgendes verwenden, um nur die USB-Geräte anzuzeigen:

lspci|grep"USB"

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. Heute finden Sie RegEx-Unterstützung in vielen verschiedenen Arten von Software, von Texteditoren bis zu Dateimanagern.

Muster finden

Wahrscheinlich haben Sie das Zeichen * verwendet, das als Platzhalter beim Auswählen von Dateien oder Ordnern im Terminal fungiert. Um beispielsweise alle JPG-Dateien in einem Ordner aufzulisten, könnten Sie Folgendes verwenden:

ls*.jpg

Das Äquivalent von RegEx zu oben wäre:

ls|grep-E"\.jpg"

Intro To Regex Filter Jpgs

Um nach JPG- und PNG-Dateien zu suchen, verwenden Sie:

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

Bereiche

Wenn Sie nach einem bestimmten Bereich von Zeichen anstelle eines Musters suchen möchten, können Sie dies tun, indem Sie ihn in Klammern definieren. Wenn Sie beispielsweise [a-z] als Ihr Muster verwenden, würde dies jede Zeichenkette entsprechen, die aus allen Kleinbuchstaben des Alphabets besteht.

Wie Sie möglicherweise erraten haben, würde [A-Z] nur Großbuchstaben auswählen. Um einen beliebigen Bereich von Buchstaben, sowohl in Groß- als auch in Kleinbuchstaben, auszuwählen, würde sich der Ausdruck auf [a-zA-Z] ändern.

Um eine bestimmte Anzahl von Instanzen Ihres Musters zu finden, können Sie dies in geschweifte 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 präsentieren.

Metazeichen

In regulären Ausdrücken können Sie auch nach Teilen einer Zeichenkette mit zwei Zeichen suchen, die Metazeichen genannt werden. Sie sind ähnlich den Platzhaltern, die Sie möglicherweise in der Shell verwendet haben.

Das wichtigste ist der einfache Punkt, der für jedes andere einzelne Zeichen steht. Wenn Sie das Muster c.ll verwenden, würde es „cell“ aber auch „cull“ und „call“ entsprechen.

Indem Sie nach einem Punkt ein Sternchen eingeben, können Sie es verwenden, um eine unendliche Anzahl von Zeichen übereinzustimmen. Beispielsweise wird .*board sowohl für „keyboard“ als auch für „skateboard“ ein Treffer sein, auch wenn „key“ und „skate“ eine unterschiedliche Anzahl von Buchstaben haben.

Escape

Möglicherweise ist Ihnen aufgefallen, dass wir in unserem Beispiel, wo wir verschiedene Arten von Bilddateien ausgewählt haben, Rückwärtsschslashes vor dem Punkt verwendet haben („.jpg“). So entkommen Sie speziellen Zeichen in RegEx.

Wenn wir sie nicht verwenden würden, würde unser Muster nicht nur die Erweiterungen der Dateien, Strings wie „.jpg“ und „.png“, finden, sondern auch „ajpg“ und „opng“. Denken Sie daran, . ist ein Platzhalter, der jedes Zeichen übereinstimmt.

Anker und Grenzen

Anker und Grenzen ermöglichen es Ihnen, präziser zu definieren, wonach Sie suchen.

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

Sie können auch gezielt nach Mustern suchen, die am Anfang oder Ende der Zeile erscheinen. Dies wird mit den Zeichen ^ und $ jeweils erreicht.

Wenn Sie also nur die Einträge finden möchten, in denen das Wort „computer“ am Anfang einer Zeile erscheint, würde Ihr Muster so aussehen: ^computer. Für das Gegenteil, wenn es am Ende der Zeile steht, würde sich das Muster auf computer$ ändern.

Das sind die einfachen Regeln von RegEx, die Sie auch mischen können, um genau die Muster zu finden, die Sie suchen. Sie können nach Zeichensätzen am Anfang einer Zeile suchen oder nach wechselnden Wörtern am Ende, spezifischen Daten oder einem Bereich von Jahren, indem Sie einen einzigen Textstring verwenden.

Vergessen Sie nicht, unser Cheatsheet für Reguläre Ausdrücke zu überprüfen, um reguläre Ausdrücke zu meistern.