Python Substrings erstellen und verarbeiten – so geht’s!

In der Programmiersprache Python gibt es verschiedene Wege, Substrings zu erstellen oder das Vorkommen von Substrings innerhalb einer Zeichenkette zu prüfen.

Was ist eigentlich ein Substring?

Ein Substring ist im Grunde genommen nichts anderes als ein Teil eines Python Strings. Bei Strings handelt es sich um Zeichenketten beliebiger Größe. Interessieren Sie sich nur für einen Teil einer solchen Zeichenkette und extrahieren diesen, erhalten Sie einen sogenannten Substring. Ein einfaches Beispiel ist die Zeichenkette „Hello World!“, die Sie beispielsweise in die zwei Substrings „Hello“ und „World!“ aufteilen könnten. Beachten Sie, dass es sich bei Substrings nicht unbedingt um einzelne Wörter handelt. Jeder Buchstabe und jedes Zeichen aus einer Zeichenkette für sich betrachtet wäre ebenfalls ein eigener Substring.

Tipp

Wenn Sie sich für die Programmierung in Python aufgrund eines Webprojekts interessieren, lohnt sich ein Blick auf Deploy Now von IONOS. Dank eines automatisierten GitHub Workflows können Sie Ihre Webprojekte ganz einfach deployen und builden.

Einen Python Substring erstellen

Slicing

Wenn Sie Python-Code schreiben möchten, der einen Substring für Sie erstellt, dann ist die hierfür wohl bekannteste Funktionalität aus Python das sogenannte Slicing. Slicing ermöglicht es Ihnen, anhand von Indizes zu bestimmen, wo Ihr Substring beginnen und wo er enden soll. Die Indizes übergeben Sie in eckigen Klammern, getrennt durch einen Doppelpunkt. Dabei ist der Startindex inklusiv, der Endindex jedoch exklusiv. Die Syntax des Slicings in Python sieht also wie folgt aus:

string[start:ende]

Ein konkretes Codebeispiel hilft dabei, sich das Slicing zu veranschaulichen:

s = "Python ist eine beliebte Programmiersprache."
ergebnis = s[0:6]

Zunächst wird eine Zeichenkette namens „s“ erstellt. In der zweiten Zeile des Codebeispiels sehen Sie das Slicing. Hinter dem Namen der Zeichenkette wird in eckigen Klammern zunächst der Startindex 0, gefolgt von einem Doppelpunkt, und dann der Endindex 6 angegeben. Dies hat zur Folge, dass in der Variable namens „ergebnis“ die Teilzeichenkette von „s“ gespeichert wird, die aus dem nullten bis einschließlich dem fünften Zeichen besteht. In unserem Fall enthielte die Variable „ergebnis“ also das Wort „Python“.

Wenn Sie einen String vom Anfang an oder aber bis zum Ende hin slicen möchten, können Sie die Schreibweise des Python Slicings noch verkürzen: Geben Sie keinen Startindex an, wird per Default einfach der Index 0 ausgewählt. Lassen Sie hingegen den Endindex weg, erstellen Sie mit Slicing einen Python Substring, der bis zum Ende der ursprünglichen Zeichenkette reicht.

Auch wenn Sie von hinten anfangen möchten, Substrings aus Ihrem ursprünglichen Python String zu extrahieren, können Sie eine Kurzschreibweise nutzen, die von negativen Indizes Gebrauch macht:

s = "Python ist eine beliebte Programmiersprache."
ergebnis = s[-19:]

Im obigen Codebeispiel enthält die Variable namens „ergebnis“ die letzten 19 Zeichen der ursprünglichen Zeichenkette „s“. Somit steht in der Variable „ergebnis“ die Zeichenkette „Programmiersprache.“.

String-Methoden

Es gibt neben dem Python Slicing eine Reihe vordefinierter String-Methoden, die Sie nutzen können, um einen Python Substring aus einem String zu extrahieren.

Die Funktion slice

Wie der Name schon vermuten lässt, funktioniert Funktion slice äquivalent zum Python Slicing. Die Syntax der slice-Funktion erinnert ebenfalls stark an das bereits gesehene Slicing. Sie übernimmt einen Start- und einen Endindex und liefert den entsprechenden Substring zurück:

string.slice(start, ende)

Die Funktion substring

Auch die substring-Methode eignet sich bestens zum Extrahieren von Python Substrings. Syntaktisch sieht sie ähnlich aus wie die slice-Funktion. Auch das Verhalten ist äquivalent:

string.substring(start, ende)

Die Funktion split

Wenn Sie sich nicht nur für einen, sondern gleich für mehrere Python Substrings interessieren, lohnt sich ein Blick auf Python split. Die Funktion ermöglicht es Ihnen, eine Zeichenkette anhand eines übergebenen Trennsymbols in eine Python-Liste von Substrings zu unterteilen. Die Syntax ist nicht kompliziert:

string.split(trennzeichen)

Um sich das genaue Vorgehen der split-Funktion zu verdeutlichen, hilft abermals ein kurzes Codebeispiel:

s = "Python ist eine beliebte Programmiersprache."
ergebnis = s.split(" ")

Der Aufruf der Python split-Funktion nimmt als Argument das Trennzeichen, in unserem Fall ein Leerzeichen, entgegen. In der Variable „ergebnis“ ist nun eine Liste aller Python Substrings gespeichert, die in der ursprünglichen Zeichenkette durch ein Leerzeichen voneinander getrennt wurden: „['Python', 'ist', 'eine', 'beliebte', 'Programmiersprache.']“

Substrings als Resultat von regulären Ausdrücken

Sie können Python Substrings außerdem in einer Liste speichern, wenn Sie einen regulären Ausdruck auf eine Zeichenkette anwenden und anschließend die findall-Funktion aus der Bibliothek „re“ benutzen. Bei regulären Ausdrücken in Python handelt es sich um ein Format für die Bearbeitung von Zeichenketten, das bestimmte Muster innerhalb von Strings findet. Die findall-Funktion nimmt als ersten Übergabeparameter einen regulären Ausdruck und als zweiten Parameter einen String entgegen. Ein Codebeispiel führt die Vorgehensweise vor Augen:

import re
s = "Python ist eine beliebte Programmiersprache."
ergebnis = re.findall(r"\w+", s)

In der ersten Codezeile wird die Bibliothek „re“ importiert, damit im Anschluss Zugriff auf die Funktion findall besteht. Dieser wird im Anschluss der reguläre Ausdruck „r"\w+"“ sowie der bereits bekannte String in der Variable namens „s“ übergeben. Der reguläre Ausdruck sieht auf den ersten Blick vielleicht etwas seltsam aus, besagt aber nichts anderes, als dass alle Wörter aus einem String extrahiert werden sollen. Somit überrascht es nicht, dass sich in der Variable namens „ergebnis“ abermals eine Liste von Python Substrings befindet: „['Python', 'ist', 'eine', 'beliebte', 'Programmiersprache']“.