2017-07-23 2 views
0

Gegeben ein Array von Zeichenfolgen, die alphanumerische Zeichen enthält, aber auch Satzzeichen, die gelöscht werden müssen. Zum Beispiel wird die Zeichenkette x = "0-001" in x = "0001" umgewandelt.Entfernen Sie Zeichen aus Zeichenfolge mit Regular Expression

Zu diesem Zweck habe ich:

punctuations = list(string.punctuation) 

, die alle Zeichen enthalten, die von den Saiten entfernt werden müssen. Ich versuche das zu lösen, indem ich reguläre Ausdrücke in Python benutze, irgendwelche Vorschläge, wie man mit regulären Ausdrücken vorgeht?

import string 
punctuations = list(string.punctuation) 
test = "0000.1111" 
for i, char in enumerate(test): 
    if char in punctuations: 
     test = test[:i] + test[i+ 1:] 
+0

[Warum kann "Kann mir jemand helfen?" Keine eigentliche Frage?] (Http://meta.stackoverflow.com/q/284236) –

+0

Warum bestehen Sie darauf, eine Regex zu verwenden? – SwiftsNamesake

Antwort

3

Wenn alles, was Sie tun möchten, nicht-alphanumerische Zeichen aus einer Zeichenfolge entfernen, können Sie es tun einfach mit re.sub:

>>> re.sub('\W', '', '0-001') 
'0001' 

Hinweis wird die \W jedes Zeichen, das nicht ist Unicode-Wortzeichen Dies ist das Gegenteil von \w. Bei ASCII-Strings entspricht dies [^a-zA-Z0-9_].