2016-04-09 3 views
0

Ich habe ein Problem mit Split-Funktion in Python; Wenn ich versuche, Text durch { zu teilen, spaltet der Text, aber die { werden entfernt. HierPython re.split(), um durch Char zu teilen, aber char im geteilten Text

ist ein Beispiel:

s = "My=pet {looks a dog}, but he is=cat" 

Die gewünschte Ausgabe ist:

["My","=","pet","{","looks","a","dog","}",",","but","he","is","=","cat"] 
+0

Es stört dich nicht, dass die Räume von der Spaltung verbraucht werden? – Paul

Antwort

0

Mit re.findall ist einfach:

re.findall(r'[^\w\s]|\w+', s) 
+0

Erstaunlich, vielen Dank! – Qunts

0

Der Standard split() Funktion Split durch Leer Raum. Wenn Sie nach einem Zeichen oder einer Zeichenfolge teilen, wird diese Zeichenfolge oder dieses Zeichen als Haltepunkte und nicht als Elemente des Arrays verwendet. In dem Beispiel können Sie einen leeren Platz zwischen den Wörtern und Zeichen angeben.

s = "My = pet { looks a dog }, but he is = cat" 
ans=s.split() 
for item in ans: 
    print ans 

Dies zeigt das von Ihnen gewünschte Ergebnis an.