【问题标题】:How to keep the delimiter in the next item in preg_split?如何将分隔符保留在 preg_split 的下一项中?
【发布时间】:2020-08-16 07:34:48
【问题描述】:

我用一组字符分割一个字符串

$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
)

【问题讨论】:

    标签: php regex preg-split


    【解决方案1】:

    使用前瞻而不是后瞻:

    $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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2013-03-18
      相关资源
      最近更新 更多