preg_split 不拆分多个分隔符

preg_split does not split multiple delimiters

我试图用多个定界符拆分一个简单的字符串,但得到了意想不到的结果。

考虑以下字符串: “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
)

我尝试了一些括号、标志,当然还有不同的正则表达式,但我没有得到预期的行为。我还尝试了一些与 Whosebug 完全不同的示例,但也得到了错误的结果。我错过了什么吗?

参数3是limit,4是flags。尝试:

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

https://3v4l.org/hheJg

.不需要在字符class中转义。 - 也不是第一个或最后一个。