4

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

到目前为止我所拥有的:

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

这给了我以下输出:

"unread;dev;test1;;"

如您所见,它不会忽略末尾的空格,因为正确的输出应该是:

"unread;dev;test1;"
4

4 回答 4

7

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

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

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

于 2012-08-27T20:58:30.387 回答
6

只需先使用修剪功能将最后的空白区域切掉。

$trimmed_tags = 修剪($tags);

于 2012-08-27T20:58:04.007 回答
2

最快的方式:

$tagsArr = array_filter( explode(' ', $tags) );
于 2012-08-28T00:39:10.193 回答
0

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

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

于 2012-08-27T21:01:03.533 回答