PHP preg_split избавиться от конечных пробелов в одну строку? - PullRequest
1 голос
/ 28 марта 2012

Как я могу избавиться от конечных пробелов в preg_split результате без , используя preg_replace для первого удаления всех пробелов из строки $test?

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

Ответы [ 3 ]

5 голосов
/ 28 марта 2012

Если это должно быть preg_split() (вы действительно требовали этого в вопросе), тогда это может помочь:

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

trim() используется для удаления пробела перед первым и последним элементом. (чего не делает preg_split() - удаляет только пробелы вокруг запятых)

1 голос
/ 28 марта 2012

Я бы сделал это так:

$test = 'One , Two,   Thee   ';
$pieces = array_map('trim', explode(',', $test));
print_r($pieces);
0 голосов
/ 17 июля 2018

Так что да, замечательный @Kaii, тем временем, основываясь на подсказке из его решения, я изменил свой код с:

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

На:

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

ИТеперь я получаю точные результаты, которые я хочу, НИКАКИХ пробелов в функциях обработки слов.Надеюсь, это тоже кому-то поможет.Приветствия.

...