Entfernen Sie bestimmte Zeichen aus der Zeichenfolge
Verwenden wir ' str.replace '
Mit Hilfe von * str.replace * können wir einige Zeichen in andere ändern. Wenn wir nur einige Zeichen entfernen möchten, ersetzen wir sie einfach durch eine leere Zeichenfolge. * str.replace () * wendet die Ersetzung auf alle gefundenen Übereinstimmungen an.
s="Hello$ Python3$" s1=s.replace("$", "") print (s1) # Результат: Hello Python3
Wenn wir ein Limit für die Anzahl der Übereinstimmungen festlegen können, um nicht alle Zeichen zu entfernen.
s="Hello$ Python3$" s1=s.replace("$", "", 1) print (s1) # Результат: Hello Python3$
Mit ' re.sub '
re. sub (pattern, repl, string, count=0, flags=0)
> Gibt die Zeichenfolge zurück, die durch Ersetzen der am weitesten links liegenden, nicht überlappenden
> vergleicht ein Muster in einem String mit dem Wert repl. Wenn Muster übereinstimmt
> nicht gefunden, es wird ein unveränderter String zurückgegeben
> -
Aus der Python-Dokumentation
Wenn wir Zeichen entfernen möchten, ersetzen wir die Übereinstimmungen einfach durch eine leere Zeichenfolge.
s="Hello$@& Python3$" import re s1=re.sub("[$|@|&]","",s) print (s1) # Результат: Hello Python3
s1=re.sub(“[$|@|&]””,”,s)
- Vorlage zu ersetzen → * „[$ | @ | &] ”*
- [] * wird verwendet, um ein Set zu definieren
- $ | @ | & * → sucht nach $ oder @ oder &
- Durch eine leere Zeichenfolge ersetzen
- Wenn die obigen Zeichen ersetzt gefunden werden, werden sie durch eine leere Zeichenfolge ersetzt
Entfernen Sie alle Zeichen außer Buchstaben
Mit 'isalpha()'
- isalpha() * wird verwendet, um zu überprüfen, ob ein String nur Buchstaben enthält. Gibt * True * zurück, wenn es sich um einen Buchstaben handelt. Wir werden jedes Zeichen in der Zeichenfolge durchgehen und prüfen, ob es ein Buchstabe ist.
Beispiel
s="Hello$@ Python3&" s1="".join(c for c in s if c.isalpha()) print (s1) # Результат: HelloPython
s=”Hallo$@ Python3&”
(c für c in s wenn c.isalpha())
Ergebnis → * ['H', 'e', 'l', 'l', 'o', 'P', 'y', 't', 'h', 'o', 'n'] *
Vor uns liegt ein Generatorobjekt, das alle Buchstaben des Strings enthält:
s1=””.join(c für c in s wenn c.isalpha())
- "". Join * verbindet alle Zeichen in einer Zeile.
Mit 'filter()'
s = "Hello$@ Python3&" f = filter(str.isalpha, s) s1 = "".join(f) print(s1)
f = filter(str.isalpha, s)
Die Funktion * filter() * wendet die Methode * str.isalpha * auf jedes Element des Strings an, und wenn sie * true * erhält, geben wir das Element zurück. Ansonsten überspringen.
s1 = ””.join(f)
Die Funktion * filter () * gibt einen Iterator zurück, der alle Buchstaben des angegebenen Strings enthält, und * join () * "verklebt" alle Elemente.
Mit 're.sub ()'
s = "Hello$@ Python3$" import re s1 = re.sub("[^A-Za-z]", "", s) print (s1) # Результат: HelloPython
Betrachten Sie * s1 = re.sub ("[^ A-Za-z]", "", s) *
- „[ A-Za-z]“ * → Sucht nach allen Zeichen außer Buchstaben. Wenn Sie * * am Anfang des Satzes angeben, werden alle Zeichen, die NICHT im Satz angegeben sind, mit dem Muster übereinstimmen. (für russische Wörter verwenden Sie * [^ A-Ya-z] * - ed.)
- Alle Zeichen, die dem Muster entsprechen, werden durch eine leere Zeichenfolge ersetzt.
- Alle Zeichen außer Buchstaben werden entfernt.
Entfernen Sie alle Zeichen außer Buchstaben und Zahlen
Mit 'isalnum()'
- isalnum() * wird verwendet, wenn wir definieren möchten, ob ein String nur aus Zahlen oder Buchstaben besteht.
Lassen Sie uns jedes Zeichen in der Zeichenfolge durchgehen, um die benötigten Zeichen zu identifizieren.
s = "Hello$@ Python3&" s1 = "".join(c for c in s if c.isalnum()) print(s1) # Результат: HelloPython3
Mit 're.sub ()'
s = "Hello$@ Python3&_" import re s1 = re.sub("[^A-Za-z0-9]", "", s) print(s1) # Результат: HelloPython3
Betrachten Sie * s1 = re.sub ("[^ A-Za-z0-9]", "", s) *
- „[^ A-Za-z0-9]“ * → Dieses Muster sucht nach allen Zeichen außer Buchstaben und Zahlen.
- Alle gefundenen Zeichen werden durch eine leere Zeichenfolge ersetzt
- Alle Symbole außer Buchstaben und Zahlen werden entfernt.
Entfernen Sie alle Zahlen aus einem String mit regulären Ausdrücken
Mit 're.sub ()'
s = "Hello347 Python3$" import re s1 = re.sub("[0-9]", "", s) print(s1) # Результат: Hello Python$
Betrachten Sie * s1 = re.sub ("[0–9]", "", s) *
- [0-9] * - Zahlen von 0 bis 9
- re.sub ("[0–9]", "", s) * - wenn Übereinstimmungen vorhanden sind, durch eine leere Zeichenfolge ersetzen
Entfernen Sie alle Zeichen aus der Zeichenfolge außer Zahlen
Mit 'isdezimal ()'
- isdecimal() * gibt true zurück, wenn alle Zeichen in der Zeichenfolge Zahlen sind, andernfalls false.
s = "1-2$3%4 5a" s1 = "".join(c for c in s if c.isdecimal()) print(s1) # Результат: 12345
Wir gehen jedes Zeichen der Zeichenkette durch und prüfen, ob es eine Ziffer ist. * ".join() * verbindet alle Elemente.
Mit 're.sub ()'
s = "1-2$3%4 5a" import re s1 = re.sub("[^0-9]", "", s) print(s1) # Результат: 12345
Betrachten Sie * s1 = re.sub ("[^ 0–9]", "", s) *
- [^ 0-9] * sucht nach allen Zeichen außer 0 bis 9
- re.sub ("[^ 0-9]", "", s) * alle Zeichen außer Zahlen werden durch eine leere Zeichenfolge ersetzt.
Mit 'filter()'
s = "1-2$3%4 5a" f = filter(str.isdecimal, s) s1 = "".join(f) print(s1) # Результат: 12345
Betrachten Sie * f = filter (str.isdecimal, s) *
Die Funktion * filter() * führt die Methode * str.isdecimal * für jedes Zeichen aus. Wenn sie true zurückgibt, fügt sie es dem Generator hinzu. Der Generator wird dann mit der Methode * join () * in einen fertigen String entpackt.
Notiz
Strings in Python sind unveränderliche Objekte, daher entfernen alle oben genannten Methoden Zeichen aus dem angegebenen String und geben einen neuen zurück. Sie ändern den Zustand des ursprünglichen Strings nicht.
Я конечно понимаю, что это статья с Медиума, но всё равно - очень не хватает сравнения скорости выполнения замен.
Опечатка в заголовке статьи - 5 СОпсобов
помогло, спасибо