用空格分隔字符串

时间:2012-08-27 20:55:26

标签: php regex preg-split

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

到目前为止我所拥有的:

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

这给了我以下输出:

"unread;dev;test1;;"

正如您所看到的那样,它不会忽略最后的空格,因为正确的输出应该是:

"unread;dev;test1;"

4 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:6)

首先使用trim function来消除末尾的空白区域。

$ trimmed_tags = trim($ tags);

答案 2 :(得分:2)

最快的方式:

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

答案 3 :(得分:0)

看起来你希望在整个弦乐中保留空白区域,但是要从末尾移除(以防止这个最后烦人的半冒号。如果到目前为止我已经理解正确,这听起来像是修剪命令的完美用法:

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