TeilZeichenkette aus einer Zeichenkette in Python extrahieren
- Extrahieren einer Teilzeichenkette mithilfe von String Slicing in Python
-
Extrahieren einer TeilZeichenkette mit dem Konstruktor
slice()
in Python - Extrahieren einer TeilZeichenket mit regulären Ausdrücken in Python
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 Index4
bis zum letzten Index beginnt.[ : 8]
-> Gibt einen Teilstring zurück, der vom Index0
bis zum Index7
beginnt.[2 : 7]
-> Gibt einen Teilstring zurück, der vom Index2
bis zum Index6
beginnt.[4 : -1]
-> Gibt einen Teilstring zurück, der vom Index4
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.
Verwandter Artikel - Python String
- Entfernen Kommas aus String in Python
- Wie man prüft, ob eine Zeichenkette auf pythonische Weise leer ist
- Konvertieren einer Zeichenkette in einen Variablennamen in Python
- Wie man Leerzeichen in einem String in Python entfernt
- Wie man in Python Zahlen aus einer Zeichenkette extrahiert
- Wie man in Python String in datetime konvertiert