在字符串中分隔以空格分隔的单词

时间:2009-09-26 12:47:44

标签: php string

我有一个以下格式的文本字符串 $ str =“word1 word2 word3 word4”

所以我想从字符串中分隔每个单词。两个单词由空格分隔 我怎么做。有没有内置功能呢?

4 个答案:

答案 0 :(得分:12)

最简单的方法是使用explode

$words = explode(' ', $str);

但这只接受固定的分隔符。 split preg_split接受正则表达式,以便您的单词可以用多个空格分隔:

$words = split('\s+', $str);
// or
$words = preg_split('/\s+/', $str);

现在,您还可以使用trim删除前导和尾随空格:

$words = preg_split('/\s+/', trim($str));

答案 1 :(得分:5)

$words = explode( ' ', $str );

请参阅:http://www.php.net/explode

答案 2 :(得分:3)

http://php.net/explode

编辑:该死的,Rob更快

答案 3 :(得分:0)

请特别注意以下事实:OP的样本输入在所有单词上都带有尾随空格。因此,不仅单词之间用空格隔开,而且还有尾随空格。

要通过单个非正则表达式函数调用来克服此问题,请使用str_word_count()和字符掩码,以允许将数字作为重要单词的一部分包含在内。

代码:(Demo

$str = "word1 word2 word3 word4 ";

var_export(str_word_count($str, 1, '0..9'));

输出:

array (
  0 => 'word1',
  1 => 'word2',
  2 => 'word3',
  3 => 'word4',
)