如何在 preg_split 的下一项中保留分隔符?

How to keep the delimiter in the next item in preg_split?

我将一个字符串按一组字符拆分为

$str = 'a-1 90 b55 0 -4 4 c9';
$array = preg_split('#(?<=[abc])#',$str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

它将前一个元素中的分隔符保留为 (demo)

Array
(
    [0] => a
    [1] => -1 90 b
    [2] => 55 0 -4 4 c
    [3] => 9
)

但我想将其保留在下一项中,如

Array
(
    [0] => a-1 90
    [1] => b55 0 -4 4
    [2] => c9
)

使用先行而不是后行:

$str = 'a-1 90 b55 0 -4 4 c9';
$array = preg_split('#(?=[abc])#',$str, -1, PREG_SPLIT_NO_EMPTY);
print_r($array);

由于您没有在正则表达式中使用任何捕获组,因此无需使用 PREG_SPLIT_DELIM_CAPTURE 标志。

Code Demo