Php preg_split的输出错误

Php preg_split的输出错误,php,regex,Php,Regex,我有这个输入 foo par1, par2 foo1 par3, par4:6 foo2 par7:00ff00 我需要用换行符、制表符、逗号和冒号来划分每一行。每一个都在代码的不同部分。我是这样做的 $output = preg_split("/\n|\r /", $input_string,-1,PREG_SPLIT_NO_EMPTY); // new lines $output2 = preg_split( "/\t|\v /", $output[$i] ); //

我有这个输入

foo     par1, par2
foo1    par3, par4:6
foo2    par7:00ff00
我需要用换行符、制表符、逗号和冒号来划分每一行。每一个都在代码的不同部分。我是这样做的

$output = preg_split("/\n|\r /", $input_string,-1,PREG_SPLIT_NO_EMPTY); // new lines
$output2 = preg_split( "/\t|\v /", $output[$i] ); // tabs in loop, thats why $i
$output3 = preg_split( "/[:,]+/", $different_output2); // Last divide string contains no foo parts of string
 array(2){
    [0]=>
    string(4) "par1"
    [1]=>
  " string(4) "par2    
}
期望输出:

 array(2){
    [0]=>
    string(4) "par1"
    [1]=>
    string(4) "par2"
}
相反,输出是这样的

$output = preg_split("/\n|\r /", $input_string,-1,PREG_SPLIT_NO_EMPTY); // new lines
$output2 = preg_split( "/\t|\v /", $output[$i] ); // tabs in loop, thats why $i
$output3 = preg_split( "/[:,]+/", $different_output2); // Last divide string contains no foo parts of string
 array(2){
    [0]=>
    string(4) "par1"
    [1]=>
  " string(4) "par2    
}

前面的引号就是问题所在。当我稍后处理数组时,这会造成混乱。

使用trim()函数和preg_split组合解决了这个问题。有一些意想不到的空白需要处理。所以最好的选择是

$output3 = preg_split( "/[:,]+/", trim($different_output2));

你能给出一个期望输出的例子吗?就在那里。我第一次知道你看不出有什么不同。我会编辑它一小段然后你能提供想要的结果吗?我还不能理解你需要什么作为这个脚本的输出。