вернуть пустую строку из preg_split - PullRequest
1 голос
/ 23 апреля 2010

Прямо сейчас я пытаюсь получить это:

Array
(
    [0] => hello
    [1] => 
    [2] => goodbye
)

Где индекс 1 - пустая строка.

$toBeSplit= 'hello,,goodbye';

$textSplitted = preg_split('/[,]+/', $toBeSplit, -1);

$textSplitted выглядит так:

Array
(
    [0] => hello
    [1] => goodbye
)

Я использую PHP 5.3.2

Ответы [ 3 ]

5 голосов
/ 23 апреля 2010

[,]+ означает один или несколько символов запятой, в то время как максимально соответствует.Используйте только /,/, и это работает:

$textSplitted = preg_split('/,/', $toBeSplit, -1);

Но вам даже не нужно регулярное выражение:

$textSplitted = explode(',', $toBeSplit);
1 голос
/ 23 апреля 2010

Как насчет этого:

$textSplitted = preg_split('/,/', $toBeSplit, -1);

Ваше разделенное регулярное выражение захватывает все запятые, а не одну.

0 голосов
/ 23 апреля 2010

Ваш шаблон разбивает текст, используя последовательность запятых в качестве разделителя (его синтаксис также не идеален, так как вы используете класс символов без причины), поэтому две (или двести) запятые считаются как одна.

В любом случае, поскольку вы просто используете буквенный символ в качестве разделителя, используйте explode():

$str = 'hello,,goodbye';

print_r(explode(',', $str));

Выход:

Array
(
    [0] => hello
    [1] => 
    [2] => goodbye
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...