2017-02-24 90 views
1

我有例如串$s = 'A5C7';$s = 'A5C17';如何使用preg_split按符號拆分字符串?

我嘗試用符號分割字符串使用preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);

如果字符串$s = 'A5C7'我OK結果是這樣的:

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

但如果使用$s = 'A5C17' 我得到:

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

我想有這樣的:

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

如何提高preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);爲獲得這兩種類型的結果? 在此先感謝。

+0

可能的重複[如何在字符串中分隔字母和數字]在PHP中(http://stackoverflow.com/questions/4311156/how-to-separate-letters-and-digits-from-a-string-在-PHP) – Mohammad

回答

1

使用圖案//將分割字符。試試這個:

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

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

該模式使用連續的整數組爲分割符,它將捕獲它們之間有什麼。選項PREG_SPLIT_DELIM_CAPTURE也可以捕獲分隔符(整數)。