Preg_split головоломка - кто сможет решить?

Рейтинг: 0Ответов: 0Опубликовано: 13.09.2014

На основе предыдущего вопроса

Как грамотно заменить explode в моем случае?

Как сделать вариант с // ?

Неправильно работает:

$str = 'a/b/c/d/e//f/g/h//i';
$arr = preg_split('~(?<!/)/~',$str);

Ответ должен получаться таким

a
b
c
d
e//f
g
h//i

Немного подумав, я написал такой код:

$str = 'a/b/c/d/e//f/g/h//i';
$arr = preg_split('/(?<!\/)\/(?!\/)/',$str);

Ответ:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e//f
    [5] => g
    [6] => h//i
)

На первый взгляд, он работает правильно, но если символов много //// , то уже нет:

$str = 'a/b/c/d/e////f/g/h//i';
$arr = preg_split('/(?<!\/)\/(?!\/)/',$str);

Ответ должен получиться таким:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => //
    [6] => f
    [7] => g
    [8] => h//i
)

Как исправить? @Deonis

Ответы

Ответов пока нет.