具体来说,针对OP提供的样本字符串,因为每个要匹配的子字符串都是单词,你可以使用str_word_count()函数。
代码:(演示)
$str = ' red, green, blue ,orange ';
var_export(str_word_count($str,1)); // 1 means return all words in an indexed array
输出:
array (
0 => 'red',
1 => 'green',
2 => 'blue',
3 => 'orange',
)
如果你仔细阅读细则,这个方法也可以用于除字母(和一些连字符和撇号)以外的子字符串,只需将所需字符添加到字符掩码/第三个参数中即可。
代码:(演示)
$str = " , Number1 , 234, 0 ,4heaven's-sake , ";
var_export(str_word_count($str,1,'0..9'));
输出:
array (
0 => 'Number1',
1 => '234',
2 => '0',
3 => '4heaven\'s-sake',
)
因为示例字符串的限制,我将非常狭隘地处理这个问题,但这将提供相同的期望输出:
代码:(演示)
$str = ' red, green, blue ,orange ';
var_export(preg_match_all('/[^, ]+/',$str,$out)?$out[0]:'fail');
最后,如果你想在逗号上进行分割,并带有可选的前导或尾随空格,这是调用方式:(
演示)
var_export(
preg_split ('/ *,+ */', $str, 0, PREG_SPLIT_NO_EMPTY)
);