Python reguläre Ausdrücke

PythonPythonBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Reguläre Ausdrücke, auch bekannt als "Regex", sind ein leistungsstarkes Werkzeug zur Arbeit mit Zeichenketten. Sie können verwendet werden, um Text auf verschiedene Weise zu durchsuchen, zu bearbeiten und zu manipulieren. In diesem Lab werden Sie die Grundlagen der Arbeit mit regulären Ausdrücken in Python lernen.

Errungenschaften

  • Reguläre Ausdrücke

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/AdvancedTopicsGroup -.-> python/regular_expressions("Regular Expressions") subgraph Lab Skills python/strings -.-> lab-93{{"Python reguläre Ausdrücke"}} python/importing_modules -.-> lab-93{{"Python reguläre Ausdrücke"}} python/standard_libraries -.-> lab-93{{"Python reguläre Ausdrücke"}} python/regular_expressions -.-> lab-93{{"Python reguläre Ausdrücke"}} end

Importieren des re-Moduls

Um reguläre Ausdrücke in Python zu verwenden, müssen Sie das re-Modul importieren.

Öffnen Sie eine neue Python-Interpreter-Sitzung und geben Sie den folgenden Code ein:

python3

Fügen Sie die folgende Zeile am Anfang Ihres Python-Skripts hinzu:

import re

Kompilieren eines regulären Ausdrucks

Bevor Sie einen regulären Ausdruck verwenden können, um ein Muster in einer Zeichenkette zu suchen, müssen Sie ihn zuerst kompilieren. Um einen regulären Ausdruck zu kompilieren, können Sie die Funktion re.compile() verwenden.

Beispielsweise kompiliert der folgende Code einen regulären Ausdruck, der nach dem Buchstaben "a" in einer Zeichenkette sucht:

regex = re.compile(r"a")

Beachten Sie, dass das r vor der Zeichenkette angibt, dass es sich um eine "rohe" Zeichenkette handelt, was bedeutet, dass Backslashes als literale Zeichen und nicht als Escape-Zeichen behandelt werden. Dies wird im Allgemeinen bei der Arbeit mit regulären Ausdrücken empfohlen, um Verwirrungen zu vermeiden.

Verwenden der search()-Methode

Jetzt, nachdem Sie einen regulären Ausdruck kompiliert haben, können Sie die search()-Methode verwenden, um nach einem Muster in einer Zeichenkette zu suchen.

Beispielsweise sucht der folgende Code nach dem Buchstaben "a" in der Zeichenkette "cat":

match = regex.search("cat")
print(match) ## Ausgabe: <re.Match object; span=(1, 2), match='a'>

Die search()-Methode gibt ein Match-Objekt zurück, wenn das Muster gefunden wird, oder None, wenn es nicht gefunden wird.

Verwenden der match()-Methode

Die match()-Methode ähnelt der search()-Methode, unterscheidet sich jedoch dadurch, dass sie nur Muster am Anfang einer Zeichenkette übereinstimmt.

Beispielsweise wird das folgende Codefragment das Muster "cat" am Anfang der Zeichenkette "catdog" finden:

regex = re.compile(r"cat")
match = regex.match("catdog")
print(match) ## Ausgabe: <re.Match object; span=(0, 3), match='cat'>

Verwenden der findall()-Methode

Die findall()-Methode gibt eine Liste aller Vorkommen eines Musters in einer Zeichenkette zurück.

Beispielsweise findet der folgende Code alle Vorkommen des Buchstabens "a" in der Zeichenkette "cat":

regex = re.compile(r"a")
matches = regex.findall("cat")
print(matches)  ## Ausgabe: ["a"]

Es gibt viele Sonderzeichen, die Sie in regulären Ausdrücken verwenden können, um komplexere Muster zu finden. Hier sind einige Beispiele:

  • . (Punkt) übereinstimmt mit jedem einzelnen Zeichen
  • * übereinstimmt mit null oder mehr Vorkommen des vorhergehenden Zeichens
  • + übereinstimmt mit einem oder mehr Vorkommen des vorhergehenden Zeichens
  • ? übereinstimmt mit null oder einem Vorkommen des vorhergehenden Zeichens
  • [characters] übereinstimmt mit einem beliebigen Zeichen innerhalb der eckigen Klammern

Verwenden von Gruppen

Sie können in Ihren regulären Ausdrücken Gruppen verwenden, um bestimmte Teile eines Musters zu extrahieren. Gruppen werden erstellt, indem ein Teil des Musters in Klammern eingeschlossen wird.

Beispielsweise wird der folgende reguläre Ausdruck jedes Wort treffen, das mit "cat" beginnt und mit "dog" endet:

regex = re.compile(r"cat(.*)dog")

Anschließend können Sie die group()-Methode des Match-Objekts verwenden, um den Teil des Musters zu extrahieren, der von der Gruppe übereinstimmt. Beispielsweise:

match = regex.search("catdog")
print(match.group(1))  ## Ausgabe: "" (leere Zeichenkette)

match = regex.search("catfooddog")
print(match.group(1))  ## Ausgabe: "food"

Verwenden der sub()-Methode

Die sub()-Methode ermöglicht es Ihnen, alle Vorkommen eines Musters in einer Zeichenkette durch eine andere Zeichenkette zu ersetzen.

Beispielsweise ersetzt der folgende Code alle Vorkommen des Buchstabens "a" in der Zeichenkette "cat" durch den Buchstaben "b":

regex = re.compile(r"a")
new_string = regex.sub("b", "cat")
print(new_string)  ## Ausgabe: "cbt"

Verwenden der split()-Methode

Die split()-Methode ermöglicht es Ihnen, eine Zeichenkette anhand eines Musters aufzuteilen.

Beispielsweise wird der folgende Code die Zeichenkette "cat dog" anhand des Leerzeichens aufteilen:

regex = re.compile(r" ")
words = regex.split("cat dog")
print(words)  ## Ausgabe: ["cat", "dog"]

Regex101

Regex101 ist ein online-Tool zum Testen von regulären Ausdrücken, das Ihnen ermöglicht, Ihre regulären Ausdrücke an einer von Ihnen gewählten Zeichenkette zu testen. Es ist eine nützliche Ressource für das Debuggen und die Entwicklung von regulären Ausdrücken, da es detaillierte Informationen über die Treffer und Fehler in Ihrem RegEx liefert.

  • https://regex101.com

Um Regex101 zu verwenden, können Sie einen regulären Ausdruck im Feld "Regex" eingeben und eine Zeichenkette, gegen die Sie ihn testen möchten, im Feld "Testzeichenkette". Während Sie tippen, wird das Tool alle Treffer in der Zeichenkette hervorheben und auch alle Fehler oder Warnungen im Abschnitt "Ergebnis" anzeigen.

Neben der Testung von regulären Ausdrücken enthält Regex101 auch eine Reihe nützlicher Funktionen, wie die Möglichkeit, Ihre regulären Ausdrücke zu speichern und zu teilen, eine Bibliothek von üblichen regulären Ausdrucksmustern und Optionen zur Anpassung der Art, wie das Tool die Treffer durchführt.

Insgesamt ist Regex101 ein wertvolles Tool für alle, die mit regulären Ausdrücken in Python oder in jeder anderen Programmiersprache arbeiten.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie in Python reguläre Ausdrücke verwenden, um Zeichenketten zu durchsuchen, zu treffen und zu manipulieren. Sie haben gelernt, wie Sie reguläre Ausdrücke kompilieren, wie Sie verschiedene Methoden wie search(), match(), findall() und sub() verwenden und wie Sie Sonderzeichen und Gruppen verwenden, um komplexere Muster zu treffen.

Ich hoffe, dass dies hilfreich ist! Melden Sie mir, wenn Sie Fragen haben.