2014-12-13 41 views
1

字符串我具有能夠接收兩種類型串的代碼:PHP正則表達式:分割上數值

  1. 文本號文本

    danny levitt 48 new york 
    
  2. 文本數[逗號]文本

    danny levitt 48, new york 
    

兩種尺寸的文字都可以是單一的d或更多,並且該語言可能不是英語。

我需要這些字符串返回到我一個數組如下:

Array (
     0 => "danny levitt", 
     1 => "48", 
     2 => "new york" 
    ) 

我怎樣才能做到這一點?

謝謝。

+0

http://www.phpliveregex.com/p/8MT – 2014-12-13 14:38:44

+0

感謝。這非常有幫助! – Digicom 2014-12-13 20:31:19

回答

0

根據前面存在的空格將輸入拆分爲相同數字後面的數字和空格。 \K丟棄先前匹配的字符。

$string = "danny levitt 48, new york"; 
$regex = '~\s+(?=\b\d+,?)|\b\d+\K,?\s+~'; 
$splits = preg_split($regex, $string); 
print_r($splits); 

輸出:

Array 
(
    [0] => danny levitt 
    [1] => 48 
    [2] => new york 
)