Was ist ein regulärer Ausdruck?
Regex, oder Reguläre Ausdrücke, sind ein Musterabgleichs-Markup, das Programmierer verwenden, um nach bestimmten Mustern im Text zu suchen. Reguläre Ausdrücke können nach fast allem suchen, je nachdem, wie Sie sie strukturieren. Sie werden überall von Programmierern verwendet, weil sie von unschätzbarem Wert sind, um Computern dabei zu helfen, Daten schnell zu sortieren und Unsinn herauszufiltern, der sonst Fehler verursachen könnte.
Reguläre Ausdrücke sehen in der Regel beängstigend aus, insbesondere für Nicht-Programmierer. Schau dir das einfach an:
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_.-]+
Realistisch gesehen ist es eigentlich nicht so schlimm; das entspricht E-Mail-Adressen. Wie Sie sehen werden, können Ausdrücke in einzelne Zeichen zerlegt werden, die alle dem Programm mitteilen, wonach es suchen soll.
Reguläre Ausdrücke sind fast universell. Der gleiche General Syntax gilt für alle Sprachen mit nur geringen Abweichungen hier und da. Dieses Handbuch enthält Beispiele aus Python und JavaScript sowie einfache alte Regex. Wenn Sie mit einer anderen Sprache arbeiten, machen Sie sich keine Sorgen. Fast alles trifft auch auf die Sprache Ihrer Wahl zu.
Regex-Grundlagen
Technisch gesehen gibt es nicht viele Dinge, die nicht als reguläre Ausdrücke angesehen werden könnten, da wörtliche Textzeichenfolgen wirklich einfach sind. Wenn Sie 'abcde' als regulären Ausdruck verwenden, würde die Programmiersprache nach genau diesem String suchen.
Das erste dynamischere übereinstimmende Zeichen, das Sie sich ansehen sollten, ist das '.' Charakter. Das Punktzeichen ist in diesem Zusammenhang ein Platzhalter. Wenn Sie damit suchen, gibt Ihr Programm jedes gefundene Zeichen als Übereinstimmung zurück.
Was ist also, wenn Sie nach einem buchstäblichen Punkt suchen möchten? Das ist auch nicht schwer. Wenn Sie einen Literalpunkt verwenden möchten, fügen Sie davor einen umgekehrten Schrägstrich hinzu, etwa so: '\.'
Backslash-Zeichen
Der Backslash spielt hier jedoch viel mehr Rollen. Die meisten der wichtigsten Regex-Zeichen enthalten einen umgekehrten Schrägstrich.

Schauen Sie sich einige Beispiele an:
- \d: Ziffern von 0 bis 9
- \w: "Wortzeichen" Buchstaben, Ziffern und Unterstrich
- \s: Leerzeichen, einschließlich Tabulatoren, Zeilenumbrüche und normale Leerzeichen
Wenn Sie stattdessen den Großbuchstaben verwenden, erhalten Sie das Gegenteil. '\D' gibt Ihnen zum Beispiel alles außer Ziffern.
Klassen
Das Backslash-Zeichen sind gut, aber sie sind immer noch irgendwie starr. Im Allgemeinen möchten Sie entweder Buchstaben, Zahlen oder einige Sonderzeichen zuordnen.

Setzen Sie die Zeichen, die Sie vergleichen möchten, in ein Paar eckiger Klammern '[]', und Ihr Programm wird mit jedem von ihnen übereinstimmen. Dies wird als Regex-Klasse bezeichnet.
[abcd1234]
Das obige Beispiel ist immer noch ineffizient. Stattdessen können Sie einen Bindestrich verwenden, um einen Bereich anzugeben; zum Beispiel alle Kleinbuchstaben:
[a-z]
Sie können auch Bereiche auflisten. Der folgende Ausdruck stimmt mit allen Buchstaben und Ziffern überein:
[a-zA-Z0-9]
Wenn Sie den Bindestrich in Ihren Zeichensatz aufnehmen möchten, heften Sie ihn am Ende an, damit er nicht ausgewertet wird. Es funktioniert auch mit anderen Sonderzeichen.
[a-zA-Z0-9_.+-]
Wie bei den Backslash-Zeichen können Sie auch hier das inverse Ergebnis erhalten. Platzieren Sie ein '^' am Anfang Ihrer Klasse, um sie von Ihren Ergebnissen auszuschließen. Dadurch werden Ziffern und mehrere Sonderzeichen von den Ergebnissen ausgeschlossen:
[^0-9_+.-]
Gruppen
Gruppen verwenden eine Reihe von Klammern, um Ihren Ausdruck zu unterteilen. Sie gruppieren Daten, sodass Ihr Programm diese gezielt verwenden und verwenden kann. Wenn ein Programm das ' http://' von einer Webadresse aus verwendet es Regex-Gruppen, um dies zu erreichen. Die Regex lässt sie auf bestimmte Kriterien abzielen, und die Gruppen lassen sie Abschnitte voneinander trennen.

Bei Gruppen können Sie auch zwischen dem einen oder anderen Muster wählen. Sie verwenden ein einzelnes '|' als "oder" im Ausdruck fungieren. Der nachfolgende Ausdruck stimmt mit einem der folgenden Werte überein: .com, .org, .net, .edu oder .gov.
\.(com|org|net|edu|gov)
Quantifizierer
Quantifizierer sind genau das, wonach sie klingen. Sie geben dem Ausdruck die Menge eines gesuchten Zeichens an. Dies sind die verfügbaren Quantoren:
- *: Null oder mehr
- +: Eine oder mehrere
- ?: Null oder Eins
- {3}: Der Betrag in den Klammern
Platzieren Sie einen dieser Quantoren am Ende des Zeichens oder der Klasse, deren Anzahl Sie angeben möchten. In diesem Beispiel wird nach siebenstelligen Standardtelefonnummern gesucht:
\d{3}[.*-]\d{3}[.*-]\d{4}
Anker und Grenzen
Mit regulären Ausdrücken können Sie anhand ihrer Position innerhalb einer Textfolge oder um ein Wort herum nach Mustern suchen.

Dies sind Ihre primären Optionen:
- ^: Der Anfang einer Zeichenfolge
- $: Das Ende einer Zeichenfolge
- \b: Wortgrenze (der Anfang oder das Ende eines Wortes)
Wenn Sie nur Zeichenfolgen suchen möchten, die mit einem Buchstaben beginnen, können Sie Folgendes versuchen:
^[a-zA-Z]
Angenommen, Sie möchten nur das Wort "es" finden, nicht Wörter, die die Buchstaben I und T enthalten; hier würden Sie Wortgrenzen verwenden.
\b(i|I)t\b
Abschließende Gedanken
Reguläre Ausdrücke können Ihnen beim Programmieren eine Menge Kopfschmerzen ersparen. Stellen Sie sich vor, Sie versuchen, Logik zu schreiben, um eines der Beispiele in diesem Artikel auszuführen. Es wäre ein schreckliches Durcheinander. Sobald Sie sich mit ihnen vertraut gemacht haben, werden Sie wahrscheinlich die Leistungsfähigkeit und Flexibilität von Regex wirklich genießen.