PHP preg_split只在一行中删除了尾随空格?

时间:2012-03-28 07:46:50

标签: php regex preg-replace preg-split

我怎样才能摆脱preg_split结果中的尾随空格而不使用使用preg_replace首先从$test字符串中删除所有空格?

$test   = 'One , Two,   Thee   ';
$test   = preg_replace('/\s+/', ' ', $test);
$pieces = preg_split("/[,]/", $test);

3 个答案:

答案 0 :(得分:5)

如果必须是preg_split()(您在问题中确实需要这样做),那么这可能有所帮助:

$test   = 'One , Two,   Thee   ';
$pieces = preg_split("/\s*,\s*/", trim($test), -1, PREG_SPLIT_NO_EMPTY);

trim()用于删除第一个元素之前和最后一个元素之后的空格。 (preg_split()不执行 - 它只删除逗号周围的空格)

答案 1 :(得分:1)

我会这样做:

$test = 'One , Two,   Thee   ';
$pieces = array_map('trim', explode(',', $test));
print_r($pieces);

答案 2 :(得分:0)

是的,同时,@ Kaii的一个很棒的人,同时,根据他的解决方案中的提示,我修改了我的代码:

function splitStringToArray($str){
    return preg_split('/\s+/', $str);
}

收件人:

function splitStringToArray($str){
    return preg_split('/\s+/', trim($str));
}

现在得到我想要的确切结果,字处理功能中没有尾部空格。希望这也能对某人有所帮助。干杯。