使用 preg_split() 可以按正则表达式分割字符串,返回一个包含所有子串的数组。与 explode() 相比,explode() 仅支持固定字符串分隔符且速度更快,而 preg_split() 支持复杂模式匹配(如多个分隔符、空白字符等),但性能开销较大。

如何按逗号或分号分割混合分隔符的字符串
当需要同时处理逗号 , 和分号 ; 作为分隔符时,可以使用 | 表示“或”的正则逻辑。调用 preg_split('/[,;]/', $str) 即可一次性完成分割,无需多次调用 explode() 后合并结果。

$str = "apple,banana;cherry,date";
$result = preg_split('/[,;]/', $str);
print_r($result); // Array ( [0] => apple [1] => banana [2] => cherry [3] => date )如何过滤空值并去除首尾空白
在分割过程中,如果希望自动忽略空字符串并修剪各元素的首尾空白,可以结合 PREG_SPLIT_NO_EMPTY 和 PREG_SPLIT_DELIM_CAPTURE 标志位。通常配合 array_map('trim', ...) 使用,或者在正则中直接捕获非空白内容。更常见的做法是先分割,再用 array_filter 清理空项。
立即学习“PHP免费学习笔记(深入)”;

$str = " apple , banana ; cherry ";
$result = preg_split('/[,;]/', $str, -1, PREG_SPLIT_NO_EMPTY);
$result = array_map('trim', $result);
print_r($result); // Array ( [0] => apple [1] => banana [2] => cherry )当输入字符串为空或无匹配分隔符时会返回什么
如果输入字符串为空 "",preg_split() 将返回一个包含单个空字符串元素的数组 array("")。如果字符串中存在内容但没有找到任何匹配的分隔符,它将返回包含原字符串的数组。这与 explode() 的行为一致:找不到分隔符时返回原样数组,但 preg_split 在空输入时的表现更符合正则引擎的默认规则。



















