2017-02-24 2 views
1

Ich habe zum Beispiel String $s = 'A5C7'; und $s = 'A5C17';Wie wird die Zeichenfolge mit preg_split nach Symbolen aufgeteilt?

war ich Split String von Symbolen versuchen Sie es mit preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);

Wenn Zeichenfolge $s = 'A5C7' Ich habe OK Ergebnis wie folgt aus:

array(4) { 
    [0]=> 
    string(1) "A" 
    [1]=> 
    string(1) "5" 
    [2]=> 
    string(1) "C" 
    [3]=> 
    string(1) "7" 
} 

aber wenn Gebrauch $s = 'A5C17' I erhalten:

array(5) { 
    [0]=> 
    string(1) "A" 
    [1]=> 
    string(1) "5" 
    [2]=> 
    string(1) "C" 
    [3]=> 
    string(1) "1" 
    [4]=> 
    string(1) "7" 
} 

Ich möchte wie diese bekommen:

array(4) { 
     [0]=> 
     string(1) "A" 
     [1]=> 
     string(1) "5" 
     [2]=> 
     string(1) "C" 
     [3]=> 
     string(1) "17" 
    } 

Wie beide Arten der Ergebnisse zu verbessern preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY); für immer? Vielen Dank im Voraus.

+0

Mögliches Duplikat von [So trennen Sie Buchstaben und Ziffern von einem String in PHP] (http://stackoverflow.com/questions/4311156/how-to-separate-letters-and-digits-from-a-string- in-php) – Mohammad

Antwort

1

Mit dem Muster // werden Zeichen geteilt. Versuchen Sie stattdessen:

preg_split('/(\\d+)/', $s, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); 

array (
    0 => 'A', 
    1 => '5', 
    2 => 'C', 
    3 => '17', 
); 

Dieses Muster Gruppen von aufeinanderfolgenden ganzen Zahlen als Split-Trennzeichen verwendet, und es wird erfassen, was zwischen ihnen ist. Mit der Option PREG_SPLIT_DELIM_CAPTURE werden auch die Trennzeichen (die Ganzzahlen) erfasst.

Verwandte Themen