Sonderzeichen aus der Zeichenkette in Python entfernen

Muhammad Waiz Khan 5 September 2023
  1. Entfernen von Sonderzeichen aus dem String in Python mit der Methode str.isalnum()
  2. Entfernen von Sonderzeichen aus dem String in Python mit der Methode filter(str.isalnum, string)
  3. Entfernen von Sonderzeichen aus dem String in Python mit regulären Ausdrücken
  4. Entfernen von Sonderzeichen aus dem String in Python mithilfe von str.translate() und str.maketrans()
  5. Entfernen von Sonderzeichen aus dem String in Python mithilfe von map() und Lambda-Funktionen
  6. Beispielcode:
Sonderzeichen aus der Zeichenkette in Python entfernen

In diesem Tutorial werden verschiedene Methoden zur Entfernung aller Sonderzeichen aus einem String in Python diskutiert. Wir können die Sonderzeichen aus dem String entfernen, indem wir Funktionen oder reguläre Ausdrücke verwenden.

Das Entfernen von Sonderzeichen aus Zeichenfolgen ist eine häufige Aufgabe, um sicherzustellen, dass Textdaten sauber sind und für weitere Verarbeitung geeignet sind. Wir werden im Folgenden Methoden zur Erreichung dieses Ziels behandeln.

  1. Verwendung der Methoden str.isalnum() und str.join().
  2. Verwendung der Funktion filter().
  3. Verwendung regulärer Ausdrücke (re-Modul).
  4. Verwendung der Methoden str.translate() und str.maketrans().
  5. Verwendung von map()- und Lambda-Funktionen.

Entfernen von Sonderzeichen aus dem String in Python mit der Methode str.isalnum()

Die Methode str.isalnum() ist ein leistungsstolzes Werkzeug, um festzustellen, ob ein Zeichen alphanumerisch ist oder nicht, und die Methode str.join() ermöglicht es uns, die bereinigte Zeichenfolge wiederherzustellen.

Verwenden wir die Zeichenfolge "Hey! What's up bro?" als Beispielzeichenfolge für diesen Artikel.

Hier ist ein vollständiges Codebeispiel, das zeigt, wie man Sonderzeichen aus einem String mit der Methode str.isalnum() und der Methode str.join() entfernt:

# Beispielzeichenfolge mit Sonderzeichen
original_string = "Hey! What's up bro?"

# Schritt 1: Entfernen der Sonderzeichen mithilfe der List Comprehension und str.isalnum()
cleaned_list = [char for char in original_string if char.isalnum()]

# Schritt 2: Rekonstruktion der bereinigten Zeichenfolge mithilfe von str.join()
cleaned_string = "".join(cleaned_list)

# Ausgabe der bereinigten Zeichenfolge
print("Ursprüngliche Zeichenfolge:", original_string)
print("Bereinigte Zeichenfolge:", cleaned_string)

Ausgabe:

Ursprüngliche Zeichenfolge: Hey! What's up bro?
Bereinigte Zeichenfolge: HeyWhatsupbro

Schritt-für-Schritt-Erklärung

  • Schritt 1: str.isalnum()

Die Methode str.isalnum() ist eine integrierte String-Methode, die überprüft, ob alle Zeichen in der angegebenen Zeichenfolge alphanumerisch sind (entweder Buchstaben oder Zahlen). Sie gibt True zurück, wenn alle Zeichen alphanumerisch sind, andernfalls False.

In unserem Beispiel verwenden wir eine List Comprehension, um über jedes Zeichen in der ursprünglichen Zeichenfolge zu iterieren. Wenn das Zeichen alphanumerisch ist, wird es in die cleaned_list aufgenommen.

  • Schritt 2: str.join()

Die Methode str.join() ist eine weitere String-Methode, die es uns ermöglicht, eine Sequenz von Zeichenfolgen mithilfe eines angegebenen Trennzeichens zu verbinden. In diesem Fall verwenden wir eine leere Zeichenfolge als Trennzeichen, um die Zeichen in der cleaned_list ohne Trennung zu verknüpfen.

Durch die Anwendung der Methode str.isalnum() und anschließend die Verwendung der Methode str.join() entfernen wir effizient Sonderzeichen und rekonstruieren die bereinigte Zeichenfolge.

Entfernen von Sonderzeichen aus dem String in Python mit der Methode filter(str.isalnum, string)

Die Funktion filter() bietet eine leistungsstarke Möglichkeit, unerwünschte Zeichen basierend auf bestimmten Kriterien aus einer Zeichenfolge zu entfernen.

Sie ermöglicht es uns, eine Filterbedingung auf jedes Zeichen anzuwenden und nur diejenigen zu behalten, die die Bedingung erfüllen.

Die Verwendung von filter() kann zu einem saubereren und strukturierteren Textdatensatz führen.

Bevor wir in die detaillierte Erklärung eintauchen, werfen wir einen Blick auf das vollständige Codebeispiel, das zeigt, wie man Sonderzeichen aus einem String mithilfe der Funktion filter() entfernt:

# Beispielzeichenfolge mit Sonderzeichen
original_string = "Hey! What's up bro?"

# Anwenden der Funktion filter() auf die Zeichenfolge
filtered_chars = filter(str.isalnum, original_string)

# Konvertieren der gefilterten Zeichen zurück in eine Zeichenfolge
cleaned_string = "".join(filtered_chars)

# Ausgabe der bereinigten Zeichenfolge
print("Ursprüngliche Zeichenfolge:", original_string)
print("Bereinigte Zeichenfolge:", cleaned_string)

Ausgabe:

Ursprüngliche Zeichenfolge: Hey! What's up bro?
Bereinigte Zeichenfolge: HeyWhatsupbro

Schritt-für-Schritt-Erklärung

  • Schritt 1: Anwenden von filter() auf die Zeichenfolge

Die Funktion filter() hat zwei Argumente: die Filterfunktion und das Iterable (in diesem Fall die ursprüngliche Zeichenfolge). Sie wendet die Filterfunktion auf jedes Zeichen in der Zeichenfolge an und gibt ein Iterable zurück, das nur die Zeichen enthält, die die Filterbedingung erfüllen.

In unserem Beispiel wenden wir die Funktion str.isalnum() mit filter(str.isalnum, original_string) an, um ein Iterable aus gefilterten Zeichen zu erhalten.

  • Schritt 2: Konvertieren der gefilterten Zeichen in eine Zeichenfolge

Das aus der Funktion filter() erhaltenen Iterable muss wieder in eine Zeichenfolge konvertiert werden. Dies erreichen wir mithilfe der join()-Methode, die die Zeichen ohne Trennzeichen verknüpft. Das Ergebnis ist die bereinigte Zeichenfolge, die nur alphanumerische Zeichen enthält.

Entfernen von Sonderzeichen aus dem String in Python mit regulären Ausdrücken

Reguläre Ausdrücke, oft als Regex oder Regexp abgekürzt, bieten eine vielseitige und flexible Möglichkeit, mit Zeichenfolgen zu arbeiten.

Sie ermöglichen es Ihnen, Muster zu definieren, die bestimmte Zeichenfolgen von Zeichen erkennen, was sie perfekt für das Identifizieren und Entfernen von Sonderzeichen aus Texten macht.

Das integrierte re-Modul von Python bietet Funktionen für die Arbeit mit regulären Ausdrücken.

Arbeitsbeispiel Code:

import re

# Beispielzeichenfolge mit Sonderzeichen
original_string = "Hey! What's up bro?"

# Definieren des regulären Ausdrucksmusters für nicht alphanumerische Zeichen
pattern = r"[^a-zA-Z0-9\s]"

# Verwenden von re.sub(), um Sonderzeichen durch eine leere Zeichenfolge zu ersetzen
cleaned_string = re.sub(pattern, "", original_string)

# Ausgabe der bereinigten Zeichenfolge
print("Ursprüngliche Zeichenfolge:", original_string)
print("Bereinigte Zeichenfolge:", cleaned_string)

Ausgabe:

Ursprüngliche Zeichenfolge: Hey! What's up bro?
Bereinigte Zeichenfolge: Hey Whats up bro

Schritt-für-Schritt-Erklärung

  • Schritt 1: Importieren des Moduls re

Um mit regulären Ausdrücken zu arbeiten, müssen wir das integrierte re-Modul von Python importieren. Dieses Modul bietet Funktionen für die Arbeit mit regulären Ausdrücken, einschließlich Musterabgleich und Ersetzung.

  • Schritt 2: Definieren des regulären Ausdrucksmusters

Das reguläre Ausdrucksmuster definiert die Kriterien für das Erkennen von Zeichen, die wir entfernen möchten. In diesem Beispiel definieren wir das Muster r'[^a-zA-Z0-9\s]', das jedes Zeichen erkennt, das kein Buchstabe, keine Ziffer oder kein Leerzeichen ist.

[^a-zA-Z0-9\s], dieser Teil des Musters, erkennt jedes Zeichen, das kein Groß- oder Kleinbuchstabe, keine Ziffer oder kein Leerzeichen ist.

  • Schritt 3: Verwenden von re.sub() zur Ersetzung von Sonderzeichen

Die Funktion re.sub() ermöglicht es uns, Vorkommen eines Musters in einer Zeichenfolge durch eine Ersatzzeichenfolge zu ersetzen. In unserem Fall möchten wir die übereinstimmenden Sonderzeichen durch eine leere Zeichenfolge ('') ersetzen und sie so effektiv entfernen.

Wir verwenden re.sub(pattern, replacement, string) für die Ersetzung. Hier ist pattern das von uns definierte reguläre Ausdrucksmuster, replacement ist eine leere Zeichenfolge ('') und string ist die ursprüngliche Eingabezeichenfolge.

  • Schritt 4: Ausgabe der bereinigten Zeichenfolge

Nachdem wir die Funktion re.sub() angewendet haben, erhalten wir die bereinigte Zeichenfolge ohne Sonderzeichen. Wir geben sowohl die ursprüngliche als auch die bereinigte Zeichenfolge aus, um die Ergebnisse zu vergleichen.

Entfernen von Sonderzeichen aus dem String in Python mithilfe von str.translate() und str.maketrans()

Die Methode str.translate() von Python ist ein vielseitiges Werkzeug für die Zeichenkettenmanipulation. Sie ist besonders nützlich, wenn Sie bestimmte Zeichen aus einer Zeichenfolge entfernen oder Zeichenwechsel auf Zeichenebene durchführen möchten.

Die Methode nutzt die Methode str.maketrans() zur Erstellung einer Übersetzungstabelle, die die Zuordnung von Zeichen zum Ersetzen oder Entfernen definiert.

Die Methode str.translate() wendet dann diese Übersetzungstabelle auf die Zeichenfolge an.

Für diesen Artikel arbeiten wir mit der Beispielzeichenfolge: “Hey! What’s up bro?”

Beispielcode:

# Beispielzeichenfolge mit Sonderzeichen
original_string = "Hey! What's up bro?"

# Definieren einer Übersetzungstabelle zur Entfernung von Sonderzeichen
special_characters = "!@#$%^&*()_-+=<>,./?;:'\"[]{}\\|`~"
translation_table = str.maketrans("", "", special_characters)

# Anwenden der Übersetzungstabelle mithilfe der Methode translate()
cleaned_string = original_string.translate(translation_table)

# Ausgabe der bereinigten Zeichenfolge
print("Ursprüngliche Zeichenfolge:", original_string)
print("Bereinigte Zeichenfolge:", cleaned_string)

Ausgabe:

Ursprüngliche Zeichenfolge: Hey! What's up bro?
Bereinigte Zeichenfolge: Hey Whats up bro

Schritt-für-Schritt-Erklärung

  • Schritt 1: Definieren der Sonderzeichen

Als Nächstes definieren wir eine Zeichenfolge namens special_characters, die alle Sonderzeichen enthält, die wir aus der Zeichenfolge entfernen möchten. Sie können diese Zeichenfolge anpassen, um alle Sonderzeichen einzuschließen, die aus Ihrer Eingabezeichenfolge entfernt werden müssen.

  • Schritt 2: Erstellen der Übersetzungstabelle

Wir verwenden die Methode str.maketrans() zur Erstellung einer Übersetzungstabelle. Diese Methode benötigt drei Argumente: die zu ersetzenden Zeichen, die Zeichen, durch die sie ersetzt werden sollen, und ein drittes Argument, das Zeichen angibt, die entfernt werden sollen.

In unserem Fall möchten wir die Sonderzeichen entfernen, daher geben wir eine leere Zeichenfolge '' als zweites Argument an. Das dritte Argument ist die zuvor definierte Zeichenfolge special_characters.

Die resultierende translation_table ordnet jedem Sonderzeichen None zu, was effektiv angibt, dass sie aus der Zeichenfolge entfernt werden sollen.

  • Schritt 3: Anwenden der Übersetzung mit der Methode translate()

Mit der Übersetzungstabelle im Hintergrund wenden wir sie auf die ursprüngliche Zeichenfolge mit der Methode translate() an. Diese Methode wendet die Übersetzungstabelle an und gibt eine neue Zeichenfolge mit den angegebenen Zeichenersetzungen oder -entfernungen zurück.

Entfernen von Sonderzeichen aus dem String in Python mithilfe von map() und Lambda-Funktionen

Die Funktion map() ist eine integrierte Python-Funktion, die eine gegebene Funktion auf jedes Element eines Iterables (z. B. eine Liste, ein Tupel oder eine Zeichenfolge) anwendet und einen Iterator zurückgibt. In Kombination mit einer Lambda-Funktion kann map() eine prägnante und effiziente Möglichkeit sein, elementweise Operationen auf einer Sammlung durchzuführen.

Beispielcode:

# Beispielzeichenfolge mit Sonderzeichen
original_string = "Hey! What's up bro?"

# Definieren einer Lambda-Funktion zur Entfernung von Sonderzeichen
cleaned_string = "".join(
    map(lambda char: char if char.isalnum() or char.isspace() else "", original_string)
)

# Ausgabe der bereinigten Zeichenfolge
print("Ursprüngliche Zeichenfolge:", original_string)
print("Bereinigte Zeichenfolge:", cleaned_string)

Ausgabe:

Ursprüngliche Zeichenfolge: Hey! What's up bro?
Bereinigte Zeichenfolge: Hey Whats up bro

Schritt-für-Schritt-Erklärung

  • Schritt 1: Definieren der Lambda-Funktion

Als Nächstes definieren wir eine Lambda-Funktion, die ein Zeichen als Eingabe erhält und das Zeichen zurückgibt, wenn es alphanumerisch oder ein Leerzeichen ist, andernfalls eine leere Zeichenfolge. Die Lambda-Funktion führt eine zeichenweise Filterung durch, entfernt alle nicht alphanumerischen Zeichen außer Leerzeichen.

  • Schritt 2: Anwenden von map() und join()

Wir verwenden die Funktion map(), um die Lambda-Funktion auf jedes Zeichen in der ursprünglichen Zeichenfolge anzuwenden. Die Funktion map() gibt einen Iterator der modifizierten Zeichen zurück. Um die endgültige bereinigte Zeichenfolge zu erhalten, verwenden wir die Methode join(), um die Zeichen aus dem Iterator in eine einzelne Zeichenfolge zu verknüpfen.

Verwandter Artikel - Python String