Python: Sonderzeichen in Strings ausschließen?
Hallo, ich bin noch recht neu Python am lernen daher tut es mir leid wenn ich die Begrifflichkeiten noch nicht so drauf habe.
Ich habe gerade versucht eine Datei auszugeben was auch geklappt hat. Jedoch möchte ich die Sonderzeichen ausschließen. Das Problem war dann aber, dass auch Wörter mit Bindestrichen nicht mehr angezeigt wurden. Ich versuche im Prinzip ale Sonderzeichen (Klammern, Punkte, ...) zu löschen.
#Output
HANS-BAUM.
[FIRMEN-Logo]
MÜNCHEN.
Verlag
Mein Programm:
with open('test.txt', encoding="utf-8") as f:
for line in f:
for word in line.split():
print(word)
2 Antworten
Hallo,
da musst du dann die Sonderzeichen ersetzen:
newstr = oldstr.replace("[", "")
Über diesen Aufruf ersetzt du also die eckigen Klammern mit einem leeren String.
Das ist eigentlich die beste Methode. Wenn Du einen String Zeile für Zeile ausgeben möchtest und du plötzlich wegen den Replacements eine leere Zeile hast, würde ich nur Zeilen ausgeben die kein leerer String ("") sind. ALso vorher mit einem if-Statement checken
Nein, natürlich ist das bei weitem nicht die beste Methode.
Wenn dann bitte mit Regex - wie ja bereits geschrieben wurde.
Üblicherweise nimmt man für komplexe Stringoperationen sogenannte reguläre Ausdrücke.
Also: <Unsichtbareszeichen><Klammerauf><IrgendwasInIrgendeinerLängeOhneKlammerZu><Klammerzu><Unsichtbareszeichen> kannst Du ersezten duch einen string mit länge null.
Der Reguläre ausdruck schaut so aus: \s\[.*?\]\s
http://www.regular-expressions.info/python.html
https://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
Willkommen in der exzellenten Welt der Regulären Ausdrücke ^^
Danke, es funktionier. Gibt es aber noch eine elegantere Methode als alle Sonderzeichen einzugeben?
!"§$%&/()=?=;:-,.-/*-+><|-_#'~*\}][{
Zumal ich jetzt das Problem habe, dass Strings welche nur aus Sonderzeichen bestehen als leere Zeile angezeigt werden.