Python: String nach Liste von Trennzeichen aufteilen

7

In Python möchte ich eine Zeichenfolge unter Verwendung einer Liste von Trennzeichen teilen. Die Trennzeichen könnten Kommas oder Semikolons sein. Whitespace sollte entfernt werden, es sei denn, es befindet sich in der Mitte von Nicht-Whitespace, Nicht-Trennzeichen, in diesem Fall sollte es beibehalten werden.

Testfall 1: ABC,DEF123,GHI_JKL,MN OP
Testfall 2: ABC;DEF123;GHI_JKL;MN OP
Testfall 3: ABC ; DEF123,GHI_JKL ; MN OP

Klingt wie ein Fall für reguläre Ausdrücke, was in Ordnung ist, aber wenn es einfacher oder sauberer ist, dann wäre es sogar noch besser.

Danke!

    
blah238 14.01.2011, 23:24
quelle

4 Antworten

15

Dies sollte viel schneller als Regex sein und Sie können eine Liste von Trennzeichen übergeben, wie Sie wollten:

%Vor%

Wie man es benutzt:

%Vor%

Leistungstest:

%Vor%     
Joschua 14.01.2011, 23:35
quelle
5

Verwenden Sie reguläre Ausdrücke, und versuchen Sie

%Vor%

oder

%Vor%

ohne.

    
Sven Marnach 14.01.2011 23:27
quelle
0
%Vor%     
Raph Levien 14.01.2011 23:36
quelle
0

Wenn Sie die obige Antwort verwenden, möchten Sie bei Ihren Testfällen einen regulären Ausdruck und ein oder mehrere Trennzeichen verwenden. In Ihrem Fall scheinen die Trennzeichen ",", "|", ";" und Leerzeichen. Leerzeichen in Python ist '\ w', also das Verständnis ist:

%Vor%

Ich kann auf svens Antwort oben nicht antworten, aber ich spalte ein oder mehrere der Zeichen innerhalb der Klammern und muss nicht die strip () -Methode verwenden.

Huch, ich habe die Frage nicht richtig gelesen ... Svens Antwort mit den Streifenwerken; meins nimmt an, dass das Leerzeichen eine andere Trennung ist.

    
tmarthal 14.01.2011 23:39
quelle

Tags und Links