Variable auf Leerraum teilen [duplizieren]

8

Ich versuche, eine Zeichenfolge in ein Array aufzuteilen, wobei die Aufteilung in den weißen Feldern erfolgt. Jeder Textblock ist durch zahlreiche (variable) Leerzeichen getrennt.

Hier ist der String:

%Vor%

Ich habe Folgendes ohne Erfolg versucht.

%Vor%

Ich möchte enden mit:

%Vor%

Was ist der beste Weg, dies zu teilen?

Danke!

    
hallert 05.06.2013, 17:23
quelle

3 Antworten

21

Wenn das erste Argument für split die Zeichenkette '' (das Leerzeichen) ist, ist es speziell. Es sollte Leerzeichen beliebiger Größe entsprechen:

%Vor%

(BTW, es ist fast gleichbedeutend mit Ihrer letzten Option, aber es entfernt auch alle führenden Leerzeichen.)

    
choroba 05.06.2013, 17:28
quelle
9

Versuchen Sie es einfach mit:

%Vor%

Codepad-Demo

Von Perldoc :

  

Als weiteren speziellen Fall emuliert emited das Standardverhalten von   Befehlszeilenwerkzeug awk, wenn das PATTERN entweder weggelassen oder ein Literal ist   Zeichenfolge, die aus einem einzelnen Leerzeichen besteht (z. B. "oder" \ x20 ",   aber nicht z.B. //). In diesem Fall ist jeder führende Leerzeichen in EXPR   vor dem Teilen entfernt werden

    
DarkAjax 05.06.2013 17:29
quelle
4

\s+ stimmt mit einem oder mehreren Leerzeichen überein und teilt sie auf

%Vor%     
Сухой27 05.06.2013 17:30
quelle

Tags und Links