2012-05-01 10 views
11

Ich verwende reguläre Ausdrücke, um eine Zeichenfolge mit mehreren Trennzeichen zu teilen. Wenn jedoch zwei meiner Trennzeichen nebeneinander in der Zeichenfolge vorkommen, wird eine leere Zeichenfolge in die resultierende Liste eingefügt. Zum Beispiel:Teilen einer Zeichenfolge mit mehreren Trennzeichen in Python

re.split(',|;', "This,is;a,;string") 

Ergebnisse in

['This', 'is', 'a', '', 'string'] 

Gibt es eine Möglichkeit, ohne sie '' in meiner Liste zu vermeiden ,; als Trennzeichen hinzuzufügen?

Antwort

30

Try this:

import re 
re.split(r'[,;]+', 'This,is;a,;string') 
> ['This', 'is', 'a', 'string'] 
+0

Hmm, okay. Was nun, wenn einer meiner Begrenzer auch ein Wort war? Zum Beispiel: 're.split (', |; | string'," Dies ist;;,; string ")' –

+2

Dann würde das funktionieren: 're.split (r '[,;] + | string', "Dies ist; a,; string") ' –

+1

Nun wäre die Ausgabe' ['This', 'is', 'a', '', ''] ' –

Verwandte Themen