如何使用正则表达式按符号拆分字符串?

时间:2017-03-12 12:33:56

标签: php arrays regex preg-split

我输入了这样的字符串

  

“CC”,5,“B7C15”,“B4C8”

我通过preg_split方法拆分了这些字符串。 但是当输入字符串$str = 'CC';时 方法不起作用。 我的代码:

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

我得到输出结果:

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

而不是以下结果:

array(1) {
  [0]=>
  string(2) "CC"
} 

我需要得到以下结果:

array(2) {
  [0]=>
  string(1) "C"
  [1]=>
  string(1) "C"
}

感谢您提前。

3 个答案:

答案 0 :(得分:2)

更好的方法是使用:

Foo

答案 1 :(得分:0)

如果您需要将任何非数字字符序列拆分为一个char元素,则只需添加'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class(单个非数字字符组)作为正则表达式的替代:

(\D)

演示:https://regex101.com/r/zFHybU/1

答案 2 :(得分:0)

您正在查看的文件格式称为CSV,并且在解析时有很多问题。而不是使用正则表达式编写自己的解析器,而是使用现有工具。

如果您正在从文件中读取这些内容,请使用PHP内置的fgetcsv函数。