2016-07-22 19 views
-9

I Neuling in Python. Ich habe ein Array [' [59342486', '59343079]']. Ich möchte schreiben Sie einen regulären Ausdruck, der die Klammern innerhalb ' [59342486' '59343079]'brauchen regulären Ausdruck, um Klammern zu entfernen

loswerden würden Sie mir bitte dabei helfen?

Vielen Dank im Voraus Jean

+7

Sie brauchen keinen regulären Ausdruck. Verwenden Sie einfach die Methode 'replace()'. – martineau

+0

auch, Regex * entfernt * die Klammern nicht. Es wird Ihnen helfen, die zu entfernenden Klammern zu finden. – SilentMonk

+2

Woher hast du diese seltsame Liste? Der Code, der diese Liste aufbaut, muss wahrscheinlich repariert werden, vielleicht durch Verwendung von "ast.literal_eval" oder durch Vermeidung einer Umwandlung in Zeichenfolgen an einem bestimmten Punkt vor dieser Stelle. – user2357112

Antwort

0

Sie replace dafür verwenden können:

for index, item in enumerate(my_list): 
    my_list[index] = item.replace('[', '').replace(']', '') 
+1

Eigentlich werden weder 'while' noch' if' benötigt. Standardmäßig ersetzt 'replace' jede Instanz des benötigten Zeichens. Das Problem ist, dass es nicht an Ort und Stelle ist, daher wird Ihr Beispiel nicht wie erwartet funktionieren. – DeepSpace

+0

Sie brauchen keine 'while' Schleife. Die Methode 'replace()' entfernt alle Vorkommen der Teilzeichenfolge. – martineau

3
new_list = [s.replace('[','').replace(']','') for s in old_list] 

Wenn Sie Leerzeichen Vorder- und Hinter löschen möchten:

new_list = [s.replace('[','').replace(']','').strip() for s in old_list] 

Sie kann es auch an Ort und Stelle tun:

old_list[:] = [s.replace('[','').replace(']','') for s in old_list] 
+1

Das ist nett, und das OP hat nicht darum gebeten, aber es lässt das führende Leerzeichen im ersten Punkt der Liste. Ich schätze, das könnte später Probleme verursachen, also ketten Sie '.strip()' zum Ausdruck –

+0

Danke, es funktioniert! –

Verwandte Themen