Php preg_split不会分割多个分隔符
我试图用多个分隔符拆分一个简单字符串,但得到了一个意外的结果 考虑以下字符串: “1_10_10-Einzel.pdf” 使用此调用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
$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')代码>