PHP拆分和空格

时间:2012-03-30 14:50:24

标签: php regex

当我用空格分割字符串时,它不会删除sapces。我的字符串看起来像这样:

$string = 'one - two - three';

我的PHP调用如下所示:

list($blk1, $blk2, $blk3) = split('\s*\-\s*', $string);

我认为正则表达式将在零个或多个空格上分割,但空格仍保留在结果数组中。

知道为什么吗?

5 个答案:

答案 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');

你去了:http://codepad.viper-7.com/ULr1NO

答案 3 :(得分:0)

您可以尝试以下方式:

[\s-]+

不是100%熟悉php但它应该可以工作。

答案 4 :(得分:0)

就像使用分隔字符串来对抗这种简单任务的正则表达式一样:

$string = 'one - two - three';
$parts = explode(' - ', $string);
array_walk($parts, 'trim');
var_dump($parts);