Python: Remove Character from String - So entfernen oder ersetzen Sie Zeichen
Strings sind in Python unveränderlich. Dennoch können Sie Zeichen entfernen, indem Sie mit entsprechenden Methoden eine neue Zeichenkette erstellen, die nur die gewünschten Teile des Originals enthält.
Unveränderlichkeit von Strings erklärt
Unveränderlichkeit bedeutet, dass ein Objekt, sobald es erstellt wurde, nicht mehr geändert werden kann. Bei Strings in Python ist jede Zeichenkette unveränderlich (immutable). Wenn Sie Zeichen aus einem String mit Python-Methoden entfernen, erstellen Sie in Wahrheit eine neue Zeichenkette, die nur bestimmte Elemente des Originals besitzt. Der ursprüngliche String bleibt unberührt. Die String Immutability trägt zu einem effizienten Speicherhandling in Python bei und hilft, unerwartete Effekte bei der Arbeit mit Zeichenketten zu vermeiden.
Bestimmte Zeichen aus einem String entfernen
Um bestimmte Zeichen aus einem String zu entfernen, können Sie zum Beispiel str.replace()
oder re.sub()
mit einem regulären Ausdruck verwenden, der die zu entfernenden Zeichen oder Muster repräsentiert.
str.replace()
Die str.replace()
-Funktion hat den Zweck, Teile eines Texts zu entfernen oder mit einem Teilstring auszutauschen.
original_string = "Hello, Python#"
modified_string = original_string.replace('#', '!')
print(original_string) # Output: Hello, Python#
print(modified_string) # Output: Hello, Python!
PythonIm oberen Beispiel ersetzt die replace()
-Methode alle Zeichen der Form „#“ in original_string
durch ein Ausrufezeichen „!“.
re.sub()
Die Funktion re.sub()
gehört zum re-Modul in Python. Sie können mit ihr reguläre Ausdrücke in Zeichenketten suchen und ersetzen.
import re
original_string = "Hello, World! @#$%^&*"
modified_string = re.sub(r'[@#$%^&*]', '', original_string)
print(original_string) # Output: Hello, World! @#$%^&*
print(modified_string) # Output: Hello, World!
PythonDas Muster [@#$%^&*]
ist ein regulärer Ausdruck, der auf die Sonderzeichen @, #, $, %, ^, &,*
passt. Die re.sub()
-Funktion sucht nach allen Übereinstimmungen des Musters im ursprünglichen String original_string
und ersetzt sie durch eine leere Zeichenkette ''
. Das Ergebnis speichern wir in der Variablen modified_string
und geben es aus.
Alle Zeichen außer Buchstaben entfernen
Um alle Buchstaben aus einem String zu entfernen, stehen Ihnen unter anderem die Methoden isalpha()
, filter()
und re.sub()
zur Verfügung.
re.sub()
import re
original_string = "Hello, 123 World! @#$%^&*"
modified_string = re.sub(r'[^a-zA-Z]', '', original_string)
print(original_string) # Output: Hello, 123 World! @#$%^&*
print(modified_string) # Output: HelloWorld
PythonDer reguläre Ausdruck [^a-zA-Z]
stimmt mit jedem Zeichen überein, das kein Klein- oder Großbuchstabe ist. Als Ergebnis enthält modified_string
nur die Buchstaben aus dem ursprünglichen String. Leerzeichen wurden ebenfalls entfernt.
isalpha()
original_string = "Hello, 123 World! @#$%^&*"
modified_string = ''.join(char for char in original_string if char.isalpha())
print(original_string) # Output: Hello, 123 World! @#$%^&*
print(modified_string) # Output: HelloWorld
PythonIn diesem Beispiel verwenden wir List Comprehension, um durch jeden Buchstaben in original_string
zu iterieren. Die isalpha()
-Methode überprüft, ob ein Zeichen ein Buchstabe ist. Nur die Buchstaben werden in eine neue Zeichenkette modified_string
eingefügt, und alle anderen Zeichen werden ignoriert.
filter()
original_string = "Hello, 123 World! @#$%^&*"
filtered_chars = filter(str.isalpha, original_string)
modified_string = ''.join(filtered_chars)
print(original_string) # Output: Hello, 123 World! @#$%^&*
print(modified_string) # Output: HelloWorld
Pythonstr.isalpha()
ist eine Methode, die True
zurückgibt, wenn das Zeichen ein Buchstabe ist, andernfalls False
. Die filter()
-Funktion erstellt ein Filter-Objekt, das nur diejenigen Zeichen enthält, für die die Bedingung str.isalpha()
wahr ist. So können wir alle Zeichen, die keine Buchstaben sind, in original_string
herausnehmen.
Alle Zeichen außer Zahlen entfernen
Zahlen können Sie ähnlich wie in den vorherigen Beispielen mit re.sub()
, filter()
und der zu isalpha()
analogen Funktion isdecimal()
trennen.
re.sub()
import re
original_string = "Hello, 123 World! @#$%^&*"
modified_string = re.sub('[^0-9]', '', original_string)
print(original_string) # Output: Hello, 123 World! @#$%^&*
print(modified_string) # Output: 123
PythonMit 0-9
definieren wir einen Bereich, der alle Ziffern von 0 bis 9 einschließt. Der Bindestrich -
zwischen 0 und 9 dient als Bereichsoperator. Das vorangestellte ^
bezieht sich auf alle Zeichen, die nicht im angegebenen Bereich von 0 bis 9 liegen. Diese werden von re.sub
durch leere Zeichen ersetzt.
filter()
original_string = "Hello, 123 World! @#$%^&*"
filtered_chars = filter(str.isdecimal, original_string)
modified_string = ''.join(filtered_chars)
print(original_string) # Output: Hello, 123 World! @#$%^&*
print(modified_string) # Output: 123
PythonDie filter()
-Funktion in Kombination mit isdecimal()
kann Zahlen aus einem String filtern und die restlichen Zeichen entfernen. Der neue String zeigt uns demzufolge nur die Ziffern 123
an.
isdecimal()
original_string = "Hello, 123 World"
modified_string = ''.join('*' if not char.isdecimal() else char for char in original_string)
print(original_string) # Output: Hello, 123 World
print(modified_string) # Output: *******123******
PythonWir können auch die Methode isdecimal()
in einer List Comprehension verwenden, um durch jeden char
in original_string
zu iterieren. Wenn das Zeichen keine Dezimalziffer ist (not char.isdecimal()
ist wahr), wird es durch ein Sternchen *
ersetzt, sonst bleibt es unverändert.
Zeichen mit translate()
entfernen
Die translate()
-Methode ist eine eingebaute Funktion in Python, die für fortgeschrittene Zeichenersetzung und -übersetzung in Zeichenketten verwendet wird. Sie bietet eine effiziente Möglichkeit, Zeichen basierend auf einer Tabelle von Übersetzungen zu ersetzen.
original_string = "Hello, World! Remove vowels."
translation_table = str.maketrans(dict.fromkeys('aeiouAEIOU', '*'))
modified_string = original_string.translate(translation_table)
print(original_string) # Output: Hello, World! Remove vowels.
print(modified_string) # Output: H*ll*, W*rld! R*m*v* v*w*ls.
PythonWir benutzen den str.maketrans()
-Konstruktor und dict.fromkeys()
, um die Übersetzungstabelle zu erstellen. Diese gibt an, dass alle Vokale durch *
ausgetauscht werden sollen. Die Tabelle wird dann auf den ursprünglichen String angewendet, um modified_string
zu erhalten.
Beim Filtern von Strings ist es auch möglich, den Python String Index zu berücksichtigen, um Zeichen an bestimmten Stellen herauszufiltern. Wenn Sie die Zeichenketten in einem bestimmten Format ausgeben möchten, sollten Sie einen Blick in unseren Ratgeber zum Thema Python String Format werfen.
- Flexibel: Hosting, das jedem Website-Traffic standhält
- Verlässlich: Inklusive 24/7-Support und persönlicher Beratung
- Sicher: Kostenloses SSL-Zertifikat, DDoS-Schutz und Backups