【问题标题】:How to split out string by symbols using preg_split?如何使用 preg_split 按符号拆分字符串?
【发布时间】:2017-02-24 08:35:33
【问题描述】:

我有例如字符串$s = 'A5C7';$s = 'A5C17';

我尝试使用preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);按符号拆分字符串

如果字符串 $s = 'A5C7' 我得到了这样的 OK 结果:

array(4) {
  [0]=>
  string(1) "A"
  [1]=>
  string(1) "5"
  [2]=>
  string(1) "C"
  [3]=>
  string(1) "7"
}

但是如果使用$s = 'A5C17' 我得到了:

array(5) {
  [0]=>
  string(1) "A"
  [1]=>
  string(1) "5"
  [2]=>
  string(1) "C"
  [3]=>
  string(1) "1"
  [4]=>
  string(1) "7"
}

我想要这样:

 array(4) {
      [0]=>
      string(1) "A"
      [1]=>
      string(1) "5"
      [2]=>
      string(1) "C"
      [3]=>
      string(1) "17"
    }

如何改进preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY); 以获得两种类型的结果? 提前致谢。

【问题讨论】:

标签: php preg-replace preg-match


【解决方案1】:

使用// 模式将分割字符。试试这个:

preg_split('/(\\d+)/', $s, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);

array (
  0 => 'A',
  1 => '5',
  2 => 'C',
  3 => '17',
);

此模式使用连续整数组作为分割分隔符,它会捕获它们之间的内容。选项PREG_SPLIT_DELIM_CAPTURE 也可以捕获分隔符(整数)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多