preg_split不分割多个定界符

时间:2019-02-13 22:43:07

标签: php regex preg-split

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

考虑以下字符串: “ 1_10_10-Einzel.pdf”

使用此调用preg_split:

mountPath

我期望以下输出:

$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
)

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

1 个答案:

答案 0 :(得分:3)

参数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

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