Wenn Sie ein Programmierer sind, wissen Sie wahrscheinlich bereits, was reguläre Ausdrücke (Regex) sind. Regex-Muster wurden in fast jeder gängigen Programmiersprache implementiert, aber die Leistungsfähigkeit und Vielseitigkeit dieser Muster wird von den meisten Entwicklern nicht erkannt.

In diesem Handbuch geht es um reguläre Ausdrücke und wie Sie sie in der Programmiersprache Python verwenden können.

Was sind reguläre Ausdrücke?

Reguläre Ausdrücke sind Muster, mit denen ein Benutzer Zeichenkombinationen in Textdateien und Zeichenfolgen abgleichen kann. Sie können reguläre Ausdrücke verwenden, um ein bestimmtes Muster in der Ausgabe eines Befehls oder eines Dokuments zu filtern oder zu finden.

Es gibt verschiedene Anwendungsfälle für reguläre Ausdrücke, von denen der bekannteste ist der Befehl grep unter Linux. Andere Anwendungen umfassen das Filtern von Informationen, z. B. das Extrahieren von E-Mail-Adressen und Telefonnummern aus einem Datendump.

Der Hauptgrund, warum viele Entwickler von regulären Ausdrücken abweichen, ist das mangelnde Bewusstsein für die Leistungsfähigkeit des Mustervergleichs. Einige finden sogar reguläre Ausdrücke verwirrend, da in den Mustern viele Zeichen und Sequenzen verwendet werden.

instagram viewer

Was auch immer der Grund sein mag, reguläre Ausdrücke sind und bleiben einer der wichtigsten Aspekte der Programmierung, über die jeder Bescheid wissen sollte.

Reguläre Ausdrücke: Übereinstimmende Zeichen und Sequenzen

Regex ist eine ganz neue Sprache für sich. Eine Regex-Engine interpretiert Muster, die aus mehreren Zeichen bestehen, die mit bestimmten Bedeutungen ausgestattet sind. Grundlegende Literale wie alphanumerische Zeichen stimmen überein. Aber komplexe Zeichen wie $, *, +, {usw. Hilfe beim Matching höherer Ordnung.

  1. Sternchen (*): Entspricht dem vorhergehenden Zeichen null oder mehrmals. Die wörtliche Bedeutung des Zeichens wäre "Element n-mal multipliziert". Zum Beispiel, wenn der reguläre Ausdruck ist ABC*Die übereinstimmenden Zeichenfolgen sind ab, abc, abcc, abccc, abcccc usw. Der Ausdruck [bc] * passt zu bc, bcbc, bcbc usw.
  2. Plus (+): Entspricht dem vorhergehenden Zeichen ein- oder mehrmals. Die Arbeit der + Charakter ist ähnlich wie *, aber die + Zeichen lässt das Muster weg, wenn das Zeichen nicht vorkommt. Beispielsweise, abc + passt zu abc, abcc, abccc usw. aber nicht ab.
  3. Fragezeichen (?): Entspricht dem vorhergehenden Zeichen null oder einmal. Zum Beispiel das Muster ABC? passt nur zu ab und abc.
  4. Rohr (|): Wird als Binärdatei verwendet ODER Operator. Entspricht einem der Zeichen vor und nach der Pipe. Beispielsweise, a | b wird entweder a oder b entsprechen.
  5. Punkt (.): Entspricht einem Charakter, dessen Identität unbekannt ist. Beispielsweise, a.c stimmt mit aac, abc, acc, a2c usw. überein.
  6. Karotte (^): Entspricht dem ersten Zeichen im Muster. Beispielsweise, ^ Ra stimmt mit Wörtern überein, die mit beginnen Ra wie Kaninchen, Waschbär und Zufall.
  7. Dollar ($): Entspricht dem letzten Zeichen im Muster. Beispielsweise, ein $ wird mit Wörtern übereinstimmen, die mit enden ein wie Van, Dan und Plan.
  8. Bindestrich (-): Wird verwendet, um einen Zeichenbereich zu definieren. Beispielsweise, [0-9] stimmt mit allen einstelligen numerischen Zeichen überein.

Spezielle Sequenzen, die in Mustern regulärer Ausdrücke verwendet werden, sind:

  1. \EIN: Gibt eine Übereinstimmung zurück, wenn die nachfolgenden Zeichen am Anfang der Zeichenfolge vorhanden sind. Beispielsweise, \ AThe passt zu Wörtern, die mit dem beginnen Das wie The, Them, They usw.
  2. \ b: Gibt eine Übereinstimmung zurück, wenn das Zeichen entweder am Anfang oder am Ende eines Wortes gefunden wird. Beispielsweise, \ bmad und verrückt \ b passt zu Wörtern wie gemacht und Nomade beziehungsweise.
  3. \ B: Gibt eine Übereinstimmung zurück, wenn das Zeichen am Anfang oder Ende eines Wortes nicht gefunden wird.
  4. \ d: Entspricht den in der Zeichenfolge enthaltenen numerischen Zeichen. Beispielsweise, /d* stimmt mit Zahlen wie 1, 12, 1232 usw. überein.
  5. \ D: Entspricht nicht numerischen Zeichen in der Zeichenfolge. / D. passt zu a, b, c, f usw.
  6. \ s: Entspricht einem Leerzeichen im Text.
  7. \ S: Entspricht einem Nicht-Leerzeichen im Text.
  8. \ w: Gibt eine Übereinstimmung zurück, wenn die Zeichenfolge alphanumerische Zeichen einschließlich Unterstrichen enthält. Beispielsweise, \ w entspricht a, b, c, d, 1, 2, 3 usw.
  9. \ W: Gibt eine Übereinstimmung zurück, wenn die Zeichenfolge keine alphanumerischen Zeichen oder Unterstriche enthält.
  10. \ Z: Entspricht den Zeichen am Ende einer Zeichenfolge. Beispielsweise, Ende \ Z. wird mit Wörtern übereinstimmen, die mit enden Ende wie Biegen, Bessern, Neigen usw.

Python-Methoden für reguläre Ausdrücke

In Python ist die Re Die Bibliothek bietet alle erforderlichen Funktionen und Dienstprogramme, die zur Implementierung von Regex in Ihren Programmen erforderlich sind. Sie müssen die Bibliothek nicht mit pip herunterladen, da sie mit dem Python-Interpreter vorinstalliert ist.

So importieren Sie die Re Fügen Sie Ihrem Skript in Python den folgenden Code zu Ihrem Skript hinzu:

import re

Beachten Sie, dass wir beim Übergeben regulärer Ausdrücke in Python unformatierte Zeichenfolgen verwenden, da diese keine Sonderzeichen wie interpretieren \ n und \ t anders.

Spiel()

Das re.match () Die Methode in Python gibt ein Regex-Objekt zurück, wenn das Programm am Anfang der angegebenen Zeichenfolge eine Übereinstimmung findet. Diese Funktion akzeptiert zwei grundlegende Argumente:

re.match (Muster, String)

...wo Muster ist der reguläre Ausdruck und Zeichenfolge ist der Text, der durchsucht werden muss.

Schauen Sie sich das Code-Snippet unten an.

import re
match = re.match (r'Word ', "Dieser Satz enthält ein Wort")
drucken (übereinstimmen)

Das r Zeichen vor der Zeichenfolge steht für rohe Zeichenfolge.

Ausgabe:

Keiner

Der oben genannte Code wird zurückgegeben Keiner weil Wort war am Anfang der Zeichenfolge nicht vorhanden.

Wenn eine Übereinstimmung gefunden wird, können Sie die Übereinstimmung mit der Taste drucken Gruppe() Methode, die zum Regex-Objekt gehört.

import re
match = re.match (r'Word ', "Wort ist schwer zu lesen")
print (match.group (0))

Ausgabe:

Wort

Suche()

Das Forschung() Die Methode verwendet ähnliche Argumente wie re.match (). Während match () nur Übereinstimmungen zurückgibt, die am Anfang der Zeichenfolge vorhanden sind, Suche() gibt Übereinstimmungen zurück, die an einem beliebigen Index in der Zeichenfolge gefunden wurden.

import re
match = re.search (r'Word ', "Dieser Satz enthält ein Wort. Das Wort ist schwer zu lesen. ")
print (match.group (0))

Notiere dass der Spiel() und Suche() Methoden geben nur eine Musterübereinstimmung zurück. Im oben genannten Code Wort erscheint zweimal. Aber die Suche() Die Funktion stimmt nur mit dem ersten Vorkommen des Wortes überein.

Wort

Finde alle()

Wie Sie bereits erraten können, ist die finde alle() Methode gibt jede mögliche Übereinstimmung in der Zeichenfolge zurück.

import re
match = re.search (r'Word ', "Dieser Satz enthält ein Wort. Das Wort ist schwer zu lesen. ")
für elem im match:
drucken (elem)

Anstatt ein Regex-Objekt zurückzugeben, gibt die Funktion findall () eine Liste aller Übereinstimmungen zurück. Sie können die Liste mit a durchlaufen for Schleife in Python.

Teilt()

Wenn Sie eine Zeichenfolge unter Verwendung eines Musters als Trennzeichen in Unterzeichenfolgen aufteilen möchten, klicken Sie auf Teilt() Funktion ist die, die Sie brauchen.

import re
split = re.split (r'and ', "Dieses Wort und das und das sind unterschiedlich.")
drucken (geteilt)

Ausgabe:

['Dieses Wort "," das "," das sind anders. "]

Sub ()

Das sub () Methode ermöglicht es einem Benutzer, ein bestimmtes Wort anstelle eines Musters zu ersetzen. Es braucht die folgenden Argumente.

re (Muster, Ersatz, Zeichenkette)

Betrachten Sie dieses Code-Snippet:

import re
result = re sub (r'and ',' oder ', "Dave und Harry müssen bestraft werden.")
drucken (Ergebnis)

Ausgabe:

Dave oder Harry müssen bestraft werden.

Kompilieren()

Das re.compile () Methode in der Re Mit der Bibliothek kann ein Benutzer eine kompilierte Version des Musters für reguläre Ausdrücke im Speicher speichern. Mithilfe des kompilierten Objekts kann der Benutzer dann den angegebenen Textauszug schnell nach übereinstimmenden Mustern filtern.

import re
pattern = re.compile ('Python')
match = pattern.findall ("Python ist eine großartige Sprache zum Schreiben von Skripten. Python ist leicht zu lernen. ")
drucken (übereinstimmen)

Diese Funktion wird hauptsächlich zum Speichern von Mustern verwendet, die ressourcenintensiv sind und viel Zeit zum Ausführen benötigen. Das vorherige Kompilieren und Speichern des Musters als Objekt löst dieses Problem.

Nutzen Sie die Kraft von Regex mit Python

Wenn Sie mit Textdateien und Ausgaben arbeiten, ist Regex ein großartiges Werkzeug, das Sie zur Verfügung haben. Sie können schnell Code schreiben, um bestimmte Muster im Dokument zu filtern oder zu ersetzen.

Das Speichern aller Zeichen und übereinstimmenden Sequenzen kann schwierig sein, wenn Sie gerade erst mit Regex beginnen. Um bei regulären Ausdrücken besser zu werden, hilft es Ihnen auf lange Sicht definitiv, ab und zu auf eine Liste von Zeichen, Methoden und Sequenzen zu verweisen.

Email
Das Python RegEx Cheat Sheet für angehende Programmierer

Verwenden Sie diese Liste der regulären Python-Ausdrücke, damit Sie diese vielseitige Programmiersprache besser verwenden können.

Weiter lesen

Verwandte Themen
  • Programmierung
  • Programmierung
  • Python
Über den Autor
Deepesh Sharma (41 Artikel veröffentlicht)

Deepesh ist der Junior Editor für Linux bei MUO. Er schreibt seit über 3 Jahren Informationsinhalte im Internet. In seiner Freizeit schreibt er gerne, hört Musik und spielt Gitarre.

Mehr von Deepesh Sharma

Abonnieren Sie unseren Newsletter

Melden Sie sich für unseren Newsletter an, um technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote zu erhalten!

Noch ein Schritt…!

Bitte bestätigen Sie Ihre E-Mail-Adresse in der E-Mail, die wir Ihnen gerade gesendet haben.

.