用空格分隔字符串


Delimit string by whitespaces

用所有空格分隔字符串的合适正则表达式是什么?两个令牌之间也可以有多个空白,并且应该忽略末尾的空白。

到目前为止我所拥有的:

<?php
$tags = "unread dev     test1   ";
$tagsArr = preg_split("/ +/", $tags);
foreach ($tagsArr as $value) {
  echo $value . ";";
}

这给了我以下输出:

"unread;dev;test1;;"

正如你所看到的,它不会忽略末尾的空白,因为正确的输出应该是:

"unread;dev;test1;"

您可以使用标志PREG_SPLIT_NO_EMPTY:忽略空条目

$tagsArr = preg_split("/ +/", $tags, -1, PREG_SPLIT_NO_EMPTY);

演示:http://ideone.com/1hrNJ

只需先使用trim函数就可以去掉末尾的空白。

$trimmed_tags=修剪($tags);

最快的方式:

$tagsArr = array_filter( explode(' ', $tags) );

似乎您希望在整个字符串中保留空白,但从末尾删除(以防止最后一个烦人的分号。如果到目前为止我理解正确,这听起来像是trim命令的完美用法:

http://php.net/manual/en/function.trim.php