2014-12-13 6 views
1

У меня есть код, который может получить 2 типа строки:PHP Regex: разбить строку на числовое значение

  1. текст Номер текст

    danny levitt 48 new york 
    
  2. текст номер [запятая] текст

Текст на оба размера может быть одним d или более, и язык может быть не английским.

Мне нужны эти строки, чтобы вернуться ко мне в массив следующим образом:

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

Как я могу это сделать?

Спасибо.

+0

http://www.phpliveregex.com/p/8MT –

+0

Спасибо. это очень помогло! – Digicom

ответ

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 
) 
Смежные вопросы