TeilZeichenkette aus einer Zeichenkette in Python extrahieren

Vaibhav Vaibhav 10 Oktober 2023
  1. Extrahieren einer Teilzeichenkette mithilfe von String Slicing in Python
  2. Extrahieren einer TeilZeichenkette mit dem Konstruktor slice() in Python
  3. Extrahieren einer TeilZeichenket mit regulären Ausdrücken in Python
TeilZeichenkette aus einer Zeichenkette in Python extrahieren

Die Zeichenkette ist eine Folge von Zeichen. Wir beschäftigen uns ständig mit Strings, egal ob wir Softwareentwicklung oder wettbewerbsfähige Programmierung betreiben. Manchmal müssen wir beim Schreiben von Programmen auf Unterteile einer Zeichenkette zugreifen. Diese Unterteile werden allgemein als TeilZeichenketten bezeichnet. Ein Teilzeichenkette ist eine Teilmenge einer Zeichenkette.

In Python können wir diese Aufgabe einfach mithilfe von String-Slicing oder mit regulären Ausdrücken oder regulären Ausdrücken ausführen.

Extrahieren einer Teilzeichenkette mithilfe von String Slicing in Python

Es gibt einige Möglichkeiten, in Python das Schneiden von Strings durchzuführen. Die Indizierung ist die grundlegendste und am häufigsten verwendete Methode. Beziehen Sie sich auf den folgenden Code.

myString = "Mississippi"
print(myString[:])  # Line 1
print(myString[4:])  # Line 2
print(myString[:8])  # Line 3
print(myString[2:7])  # Line 4
print(myString[4:-1])  # Line 5
print(myString[-6:-1])  # Line 6

Ausgabe:

Mississippi
issippi
Mississi
ssiss
issipp
ssipp

Im obigen Code fügen wir am Ende der Variablen, in der die Zeichenkette gespeichert ist, Klammern [] hinzu. Wir verwenden diese Notation zur Indizierung. In diesen Klammern fügen wir einige ganzzahlige Werte hinzu, die Indizes darstellen.

Dies ist das Format für die Klammern [start : stop : step] (getrennt durch Doppelpunkte (:)).

Standardmäßig ist der Wert von start 0 oder der erste Index, der Wert von stop ist der letzte Index und der Wert von step ist 1. start repräsentiert den Startindex des Teilstrings, stop repräsentiert den Endindex des Teilstrings und step repräsentiert den Wert, der zum Inkrementieren nach jedem Index verwendet werden soll.

Die zurückgegebene TeilZeichenkette liegt tatsächlich zwischen dem Index start und dem Index stop - 1, da die Indizierung in Python bei 0 beginnt. Wenn wir also Miss aus Mississippi abrufen möchten, sollten wir [0 : 4] verwenden.

Die Klammern dürfen nicht leer sein. Wenn Sie die Standardwerte verwenden möchten, sollte die erforderliche Anzahl von Doppelpunkten : mit Leerzeichen dazwischen hinzugefügt werden, um anzugeben, auf welchen Parameter Sie sich beziehen. Weitere Informationen finden Sie in der folgenden Liste.

  • [:] -> Gibt den gesamten String zurück.
  • [4 : ] -> Gibt einen Teilstring zurück, der vom Index 4 bis zum letzten Index beginnt.
  • [ : 8] -> Gibt einen Teilstring zurück, der vom Index 0 bis zum Index 7 beginnt.
  • [2 : 7] -> Gibt einen Teilstring zurück, der vom Index 2 bis zum Index 6 beginnt.
  • [4 : -1] -> Gibt einen Teilstring zurück, der vom Index 4 bis zum vorletzten Index beginnt. Mit -1 kann der letzte Index in Python definiert werden.
  • [-6 : -1] -> Gibt einen Teilstring zurück, der vom sechsten Index vom Ende bis zum vorletzten Index beginnt.

Extrahieren einer TeilZeichenkette mit dem Konstruktor slice() in Python

Anstatt die Indizes in den Klammern zu erwähnen, können wir mit dem Konstruktor slice() ein slice-Objekt erstellen, um eine Zeichenkette oder eine andere Sequenz wie eine Liste oder ein Tupel zu schneiden.

Der Konstruktor slice(start, stop, step) akzeptiert drei Parameter, nämlich start, stop und step. Sie bedeuten genau das gleiche wie oben erklärt.

Die Arbeitsweise von slice unterscheidet sich ein wenig von der Klammer-Notation. Das Slice-Objekt wird wie folgt in die Klammern der String-Variablen eingefügt: myString[<'slice' object>].

Wenn dem Konstruktor slice() ein einzelner ganzzahliger Wert, z. B. x, zur Verfügung gestellt wird und weiter zum Index-Slicing verwendet wird, wird ein Teilstring ab Index 0 bis Index x - 1 abgerufen. Beziehen Sie sich auf den folgenden Code.

myString = "Mississippi"
slice1 = slice(3)
slice2 = slice(4)
slice3 = slice(0, 8)
slice4 = slice(2, 7)
slice5 = slice(4, -1)
slice6 = slice(-6, -1)
print(myString[slice1])
print(myString[slice2])
print(myString[slice3])
print(myString[slice4])
print(myString[slice5])
print(myString[slice6])

Ausgabe:

Mis
Miss
Mississi
ssiss
issipp
ssipp

Die empfangenen Ausgaben sind selbsterklärend. Die Indizes folgen denselben Regeln wie für die Klammernotation definiert.

Extrahieren einer TeilZeichenket mit regulären Ausdrücken in Python

Für reguläre Ausdrücke verwenden wir Pythons integriertes Paket re.

import re

string = "123AAAMississippiZZZ123"

try:
    found = re.search("AAA(.+?)ZZZ", string).group(1)
    print(found)
except AttributeError:
    pass

Ausgabe:

Mississippi

Im obigen Code sucht die Funktion search() nach der ersten Position des Musters, das als Argument in der übergebenen Zeichenkette angegeben ist. Es gibt ein Match-Objekt zurück. Ein Match-Objekt verfügt über viele Attribute, die die Ausgabe definieren, z. B. die span des Teilstrings oder den Start- und Endindex des Teilstrings.

print(dir(re.search('AAA(.+?)ZZZ', string))) gibt alle Attribute des Match-Objekts aus. Beachten Sie, dass einige Attribute möglicherweise fehlen, da bei Verwendung von dir() die Methode __dir__() aufgerufen wird und diese Methode eine Liste aller Attribute zurückgibt. Und diese Methode kann bearbeitet oder überschrieben werden.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python String