preg_split не разделяет несколько разделителей - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь разбить простую строку на несколько разделителей, но получаю неожиданный результат.

Рассмотрим следующую строку: "1_10_10-Einzel.pdf"

Использование этого вызова дляpreg_split:

$cut = preg_split("/[_\-\.]/", "1_10_10-Einzel.pdf", PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
print_r($cut);

Я ожидаю следующий вывод:

Array
(
    [0] => 1
    [1] => 10
    [2] => 10
    [3] => Einzel
    [4] => pdf
)

, но на самом деле я получаю следующее:

Array
(
    [0] => 1
    [1] => 10
    [2] => 10-Einzel.pdf
)

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

1 Ответ

0 голосов
/ 14 февраля 2019

Параметр 3 - это предел, 4 - для флагов.Попробуйте:

$cut = preg_split("/[_.-]/", "1_10_10-Einzel.pdf", -1, PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
print_r($cut);

https://3v4l.org/hheJg

. не нужно экранировать в классе символов.- также не имеет значения, первый или последний.

...