如何在 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
标志。
我将一个字符串按一组字符拆分为
$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
标志。