1

如何在不使用首先从字符串中删除所有空格的情况下摆脱preg_split结果中的尾随空格?preg_replace$test

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

3 回答 3

5

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

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

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

于 2012-03-28T07:50:00.307 回答
1

我会这样做:

$test = 'One , Two,   Thee   ';
$pieces = array_map('trim', explode(',', $test));
print_r($pieces);
于 2012-03-28T07:50:13.920 回答
0

所以是的,@Kaii 那里很棒,同时,根据他的解决方案中的提示,我修改了我的代码:

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

到 :

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

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

于 2018-07-17T10:56:42.397 回答