在保持空格的同时将句子分成单词的最有效方法是什么?

时间:2017-03-05 06:19:28

标签: php string split

我们说我有一个"句子"由"单词"组成和空格如:

'  foo bar    foobar   '

具体而言,单词是不包括空格的任何字符集。每个单词之间有一个或多个空格。前导和尾随空格是可选的。

我喜欢将单词空格分隔成集合的最简单方法,例如:

[ '  ', 'foo', ' ', 'bar, '    ', 'foobar', '   ']

我尝试使用带有空格字符的explode()作为分隔符,但当然,结果不包含空格。我尝试了preg_match()没有成功,但这可能是因为我无法找到正确的正则表达式。

我可以按字符处理句子,但我觉得应该有一种更简单的方法。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我尝试使用以下对我有用的作品:

$s = '  foo bar    foobar   ';

preg_match_all('/\s+|\w+/', $s, $matches);

print_r($matches);

在数组数组中给出空格和单词:

Array
(
    [0] => Array
        (
            [0] =>   
            [1] => foo
            [2] =>  
            [3] => bar
            [4] =>     
            [5] => foobar
            [6] =>    
        )

)

但这是最有效的方式吗?我会留给你判断:)