用所有空格分隔字符串的合适正则表达式是什么?两个令牌之间也可以有多个空白,并且应该忽略末尾的空白。
到目前为止我所拥有的:
<?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