In Perl s/[^\w:]//g
würde alle nicht alphanumerischen Zeichen ersetzen AUSSER:
In Python verwende ich re.sub(r'\W+', '',mystring)
Das entfernt alle nicht alphanumerischen außer _ Unterstrich.
Gibt es eine Möglichkeit Ausnahmen zu setzen, ich möchte Zeichen wie = und. Nicht ersetzen.
Früher habe ich den anderen Ansatz angewendet, d. h. alle unerwünschten Zeichen durch re.sub('[!@#\'\"
$ ()] ',' ', mystring' zu ersetzen.
Es ist mir jedoch nicht möglich vorherzusagen, welche Zeichen in mystring enthalten sein können. Daher möchte ich alle nicht alphanumerischen Zeichen außer einigen wenigen entfernen.
Google hat keine passende Antwort angegeben. Die nächste Suche ist python regex split any \ W + mit einigen Ausnahmen aber das hat mir auch nicht geholfen.
Sie können alles, was Sie nicht entfernen müssen, in den negierten Zeichen clas angeben.
%Vor%Test
%Vor% Hier ist die Variable removelist
eine Zeichenkette, die die Liste aller Zeichen enthält, die Sie vom Entfernen ausschließen müssen.
Was bedeutet negierte Zeichenklasse
? Wenn ^
in die Zeichenklasse verschoben wird, fungiert es nicht als Anker, da es die Zeichenklasse negiert.
Das ist ^
innerhalb einer Zeichenklasse, sagen wir wie [^abc]
es negiert die Bedeutung der Zeichenklasse.
Zum Beispiel wird [abc]
mit a
b
oder c
übereinstimmen, wobei [^abc]
nicht mit a
b
oder c
übereinstimmt. Das kann auch als anders als a
b
oder c
Tags und Links python regex alphanumeric