Python -Extrakt -Substring unter Verwendung von Regex

Python -Extrakt -Substring unter Verwendung von Regex

Es kann mehrere Szenarien geben, in denen es erforderlich ist, ein Substring aus einer Schnur in Python zu extrahieren. Wenn Sie beispielsweise an großen Datensätzen arbeiten, müssen Sie möglicherweise bestimmte Daten aus den Textfeldern abrufen oder ein bestimmtes Muster in einer Zeichenfolge abgleichen, z. B. eine E -Mail -Adresse oder Telefonnummer. Darüber hinaus hilft der Substring -Extraktionsvorgang auch bei der Textverarbeitung und -analyse.

Dieser Beitrag behandelt die folgenden Ansätze:

  • Methode 1: Python -Extrakt -Substring unter Verwendung von Regex in „RE.Search () ”Methode
  • Methode 2: Python -Extrakt -Substring unter Verwendung von Regex in „RE.Match () ”Methode
  • Methode 3: Python -Extrakt -Substring unter Verwendung von Regex in „RE.findall () ”Methode
  • Methode 4: Python -Extrakt -Substring unter Verwendung von Regex in „RE.finditer () ”Methode

Methode 1: Python -Extrakt -Substring unter Verwendung von Regex in „RE.Search () ”Methode

Die Python "Betreff.suchen()Methode sucht nach dem ersten Auftreten der Instanz des hinzugefügten Musters in einer Zeichenfolge und gibt a “ausPassen" Objekt. Es kann aufgerufen werden, wenn Sie ein bestimmtes Substring in einer längeren Zeichenfolge finden möchten, aber keine Ahnung haben, wie häufig es auftritt.

Syntax

Die Re verwenden.Search () Methode, folgen Sie der angegebenen Syntax:

Betreff.Suche (Muster, String, Flags)

Hier:

  • Muster”Repräsentiert die Regex, nach der Sie suchen möchten.
  • Saite”Bezieht sich auf die angegebene Zeichenfolge, in der Sie suchen möchten.
  • Flaggen”Repräsentiert die optionalen Parameter, wie z. B. Multi-Line-Modus, Fallempfindlichkeit usw.

Beispiel 1: Extrahieren von textbasiertem Substring mit „RE.Search () ”Methode

Für die Verwendung der “Betreff.suchen()Methode zum Extrahieren eines Substrings und zunächst die “importieren“Betreff”Modul. Dieses Modul bietet Unterstützung für Regex:

Import Re

Definieren Sie die Zeichenfolge, aus der Sie ein Substring abrufen möchten:

String = 'LinuxHint ist die beste Tutorial -Website'

Geben Sie dann die Regex an. Hier, "R”Zeigt an, dass es sich um eine rohe Saite handelt, um Gegenreaktionen als wörtliche Zeichen zu behandeln und“am bestenIst der definierte reguläre Ausdruck oder Regex:

regex = r'Best '

Gib die Erschaffene “Regex" Und "Saite”Zum Re.such () Methode und speichern Sie das resultierende Objekt in “passen”:

Match = re.Suche (Regex, String)

Fügen Sie nun die angegebene Bedingung hinzu, um das übereinstimmende Substring aus dem zu extrahierenpassen”Objekt, das von der Re zurückgegeben wird.such () Methode und anzeigen Sie der Konsole an:

Wenn Match:
sub_string = Übereinstimmung.Gruppe()
print (sub_string)

Es kann beobachtet werden, dass das Substring “am besten"Wurde das" extrahiert "wurde extrahiertGruppe()Methode des Match -Objekts:

Beispiel 2: Extrahieren numerischer Substring mit „RE.Search () ”Methode

Definieren Sie nun eine numerische Zeichenfolge und suchen\D+"Als Regex zu"Betreff.suchen()" Methode:

String = '039-6546-0987'
drucken (re.Suche (r '\ d+', String))

In der angegebenen Regex:

  • \"Wird verwendet, um dem Brief zu entkommen"D”(Ziffern).
  • +”Bedeutet eine oder übereinstimmen Ziffern in einer Zeile:

Wie Sie sehen können, wurde das übereinstimmende Objekt von dem zurückgegebenBetreff.suchen()" Methode.

Methode 2: Python -Extrakt -Substring unter Verwendung von Regex in „RE.Match () ”Methode

Betreff.passen()Suchen Sie nur zu Beginn der Saiten nach dem Regex und geben bei einer erfolgreichen Suche ein Match -Objekt aus. Diese Methode kann verwendet werden, wenn Sie wissen, dass das Substring nur zu Beginn der angegebenen Zeichenfolge auftritt.

Syntax

Den Re aufrufen.Match () Methode, folgen Sie der angegebenen Syntax:

Betreff.Match (Muster, String, Flags)

Beispiel

Definieren Sie zunächst den regulären Ausdruck als "'^l… .t $'". Dieser Regex entspricht den Saiten, die mit “beginnen“l", Ende mit "T”, Und haben genau 8 Zeichen.

regex = '^l… t $'

Dann deklarieren Sie die Zeichenfolge. Gib es an die Re.Match () -Methode zusammen mit dem Regex als Argumente:

String = 'LinuxHint'
Ergebnis = re.Match (Regex, String)

Ergänzen Sie die "ansonstenBedingung und geben Sie die jeweiligen Druckanweisungen für die Fälle an, wenn “PassenDas Objekt wurde zurückgegeben oder nicht:

Wenn Ergebnis:
Druck ("Die Suche wurde erfolgreich durchgeführt", Ergebnis)
anders:
drucken ("Die Suche war erfolglos."))

Ausgang

Methode 3: Python -Extrakt -Substring unter Verwendung von Regex in „RE.findall () ”Methode

Der "Betreff.finde alle()”Python -Methode sucht nach jeder Instanz eines Musters innerhalb der angegebenen Zeichenfolgen und gibt eine Liste extrahierter Substrings aus. Diese Methode wird in den Fallszenarien verwendet, in denen es erforderlich ist, mehrere Substrings ohne bestimmte Reihenfolge abzurufen.

Syntax

Den Re aufrufen.findAll () Methode, lesen Sie die angegebene Syntax:

Betreff.findall (Muster, String, Flags)

Beispiel

Definieren Sie eine Zeichenfolge, die numerische Werte umfasst. Geben Sie dann das Regex -Muster als “an" an "r '\ d+'”, Um ein oder mehrere Ziffern zu entsprechen:

String = '4 Stunden Boot Camp LinuxHint -Kurs für 14 $.99 '
regex = r '\ d+'

Dann rufen Sie das an "Betreff.finde alle()Methode und übergeben die definierte Regex und die Zeichenfolge als Argumente

Matches = re.findall (regex, String)

Jetzt über die zurückgekehrten "iterieren"Passen”Objekt, das in der Variablen der Übereinstimmungen gespeichert ist, und drucken Sie die Elemente auf der Konsole aus:

Für Spiele in Spielen:
Druck (Übereinstimmung)

Ausgang

Methode 4: Python -Extrakt -Substring unter Verwendung von Regex in „RE.finditer () ”Methode

Der "Betreff.finditer ()”Methode funktioniert genauso wie die Re.findall () Methode. Es gibt jedoch eher einen Iterator als eine Liste von Substrings zurück. In Python kann diese Methode angewendet werden, wenn ein großer Datensatz vorhanden ist und nicht alle Übereinstimmungen gleichzeitig speichern. Insbesondere das Re.finditer () verarbeitet die extrahierte Substring nacheinander.

Syntax

Den Re aufrufen.Finditer () Methode, folgen Sie der angegebenen Syntax:

Betreff.Finditer (Muster, String, Flags)

Beispiel

Erstellen Sie zunächst eine Zeichenfolge. Definieren Sie dann ein Regex -Muster als "r '[a-z]+'Das entspricht einem oder mehreren Großbuchstaben:

String = 'LinuxHint ist die beste Tutorial -Website'
regex = r '[a-z]+'

Übergeben Sie die Regex und die Zeichenfolge als Argumente an die “Betreff.finditer ()"Methode und speichern Sie das resultierende Match -Objekt in"Streichhölzer”:

Matches = re.Finditer (Regex, String)

Zuletzt iterieren Sie die Übereinstimmungsobjektelemente, extrahieren Sie das Substring mit Hilfe der „Group ()“ -Methode und drucken Sie die Konsole aus:

Für Spiele in Spielen:
sub_string = Übereinstimmung.Gruppe()
print (sub_string)

Ausgang

Wir haben wesentliche Ansätze zusammengestellt, die sich auf die Extraktion der Substring in Python beziehen.

Abschluss

Verwenden Sie das “, um das Substring mit Regex in Python zu extrahierenBetreff.suchen()","Betreff.Match () “,„ Re.findall () ”oder das„ Re.finditer ()”Methoden. Verwenden Sie abhängig von Ihren Anforderungen “Betreff.suchen()"Methode, wenn es erforderlich ist, nur die erste Instanz des Regex zu extrahieren"Betreff.passen()"Extrahiert das Substring, der den Beginn einer Zeichenfolge vorlegt", "Betreff.finde alle()"Ruft mehrere Substrings nach dem Muster ab und schließlich"Betreff.finditer ()Verarbeiten Sie die mehreren Strings einzeln. Dieser Blog behandelte die Methoden zum Extrahieren von Substring in Python.