当我用空格分割字符串时,它不会删除sapces。我的字符串看起来像这样:
$string = 'one - two - three';
我的PHP调用如下所示:
list($blk1, $blk2, $blk3) = split('\s*\-\s*', $string);
我认为正则表达式将在零个或多个空格上分割,但空格仍保留在结果数组中。
知道为什么吗?
答案 0 :(得分:3)
split
很久以前在PHP中被弃用了。考虑使用`preg_split'
$string = 'one - two - three';
list($blk1, $blk2, $blk3) = preg_split('/\s*\-\s*/', $string);
答案 1 :(得分:1)
我不确定在直接问题上告诉你什么,但正如你在手册页http://php.net/split上看到的那样,这个功能已被弃用,你不应该依赖它。
为什么不直接使用这样的爆炸:
$string = 'one - two - three';
$parts = explode(' - ', $string);
$blk1 = $parts[0];
$blk2 = $parts[1];
$blk3 = $parts[2];
答案 2 :(得分:1)
为什么不使用explode()?
function trim_value(&$value)
{
$value = trim($value);
}
$array = explode("-", $string);
array_walk($array, 'trim_value');
答案 3 :(得分:0)
您可以尝试以下方式:
[\s-]+
不是100%熟悉php但它应该可以工作。
答案 4 :(得分:0)
就像使用分隔字符串来对抗这种简单任务的正则表达式一样:
$string = 'one - two - three';
$parts = explode(' - ', $string);
array_walk($parts, 'trim');
var_dump($parts);