2014-01-29 1 views
0

Я пытаюсь создать выражение регулярных выражений, которое выбирает только пробелы между числами, которые preg_split может разделять.Как использовать preg_split для разделения строки в пробеле между цифрами?

Например:

$string = "Unit 54 981 Mayne Street"; 

вернуться бы как:

array() { 
    [0]=> "Unit 54" 
    [1]=> "981 Mayne Street" 
} 

у меня не было никакой удачи до сих пор. Любая помощь будет принята с благодарностью!

+0

Посмотрите в опережающий просмотр и задом: как они официально не является часть матча, они будут сохранены, и только пробельным удаляются в расщеплении. – Wrikken

+0

Спасибо! Это то, что я пытался, но я, должно быть, пропустил что-то в своей попытке. –

ответ

1

Попробуйте использовать lookaround assertions, как это:

$result = preg_split('/(?<=\d)\s+(?=\d)/', $string); 

Это будет означать любую последовательность из одного или более пробельных символов, которые непосредственно предшествуют и последующей цифрой характера. Он производит этот массив:

Array (
    [0] => "Unit 54" 
    [1] => "981 Mayne Street" 
) 
+0

Спасибо! Это точно решает мою проблему. Мое регулярное выражение было так близко, но смертельно испорчено. Видимо, я должен подождать семь минут, чтобы принять ваш ответ. –

+1

@ Sam-Glad Я мог бы помочь. В будущем, однако, убедитесь, что вы включили свои попытки в вопрос. Вы получите лучшие результаты, и мы сможем рассказать вам, где вы поступили неправильно. –

+0

Спасибо, в следующий раз. –