Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php preg_split不会分割多个分隔符_Php_Regex_Preg Split - Fatal编程技术网

Php preg_split不会分割多个分隔符

Php preg_split不会分割多个分隔符,php,regex,preg-split,Php,Regex,Preg Split,我试图用多个分隔符拆分一个简单字符串,但得到了一个意外的结果 考虑以下字符串: “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

我试图用多个分隔符拆分一个简单字符串,但得到了一个意外的结果

考虑以下字符串: “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完全不同的示例,但也得到了错误的结果。我错过了什么吗?

参数3是限制,4是标志。尝试:

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


不需要在字符类中转义。
-
如果是第一个或最后一个,则也不会使用。

非regexp解决方案:
$result=explode('-',str_replace([''''.]','-','1_10_10-Einzel.pdf')