---
---5. Oktober 2020 08:11

5 Möglichkeiten zum Entfernen unnötiger Zeichen aus einer Zeichenfolge in Python

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.

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

D
  • 25. Oktober 2021 00:45

Я конечно понимаю, что это статья с Медиума, но всё равно - очень не хватает сравнения скорости выполнения замен.

D
  • 25. Oktober 2021 00:45

Опечатка в заголовке статьи - 5 СОпсобов

KR
  • 28. März 2022 07:14

помогло, спасибо

Kommentare

Nur autorisierte Benutzer können Kommentare posten.
Bitte Anmelden oder Registrieren
Letzte Kommentare
ИМ
Игорь Максимов5. Oktober 2024 07:51
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
d
dblas55. Juli 2024 11:02
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
k
kmssr8. Februar 2024 18:43
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
EVA
EVA25. Dezember 2023 10:30
Boost - statisches Verknüpfen im CMake-Projekt unter Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
Jetzt im Forum diskutieren
J
JacobFib17. Oktober 2024 03:27
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
JW
Jhon Wick1. Oktober 2024 15:52
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Кирилл Гусарев27. September 2024 09:09
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
F
Fynjy22. Juli 2024 04:15
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

Folgen Sie uns in sozialen Netzwerken