2009-06-22 1 views
0

Я хочу разделить строку на две части, строка почти свободный текст, , например:Использование preg_split, чтобы перейти от «привет, как ты», чтобы [привет, как ты]

$string = 'hi how are you'; 

и я хочу раскол выглядеть следующим образом:

array(
    [0] => hi 
    [1] => how are you 
) 

Я попытался с помощью это регулярное выражения: /(\S*)\s*(\.*)/ но даже тогда, когда возвращаемый массивом является правильным размером, значение приходит пустым.

Каким должен быть шаблон, необходимый для этого?

ответ

5

Каковы требования? Ваш пример кажется довольно произвольным. Если все, что вы хотите, чтобы разделить на первое пространство и оставить остальные строки в одиночку, это будет сделать это, используя explode:

$pieces = explode(' ', 'hi how are you', 2); 

Который в основном говорит «раскол на пространствах и ограничить результирующий массив 2-х элементов "

+1

+1 - I * ненависть * использование регулярных выражений, когда они просто не нужны. – karim79

+2

Это отличное имя для функции. Я хочу, чтобы у Java был explode(). –

+0

@ karim79: Ненавижу это тоже ... @Paolo Bergantino: спасибо, это точно мое требование. – Cesar

0

Вы не должны избегать". " в последней группе. Вы пытаетесь сопоставить любого персонажа, а не буквальный период.

Исправлено: /(\S*)\s*(.*)/

Смежные вопросы