Php 什么';在保留空格的同时,将句子拆分成单词的最有效方法是什么?
假设我有一个由“单词”和空格组成的“句子”,例如:Php 什么';在保留空格的同时,将句子拆分成单词的最有效方法是什么?,php,string,split,Php,String,Split,假设我有一个由“单词”和空格组成的“句子”,例如: ' foo bar foobar ' 特别地,单词是不包括空格的任何字符集。每个单词之间有一个或多个空格。前导空格和尾随空格是可选的 我想用最简单的方法将单词和空格分成一个集合,例如: [ ' ', 'foo', ' ', 'bar, ' ', 'foobar', ' '] 我尝试使用explode(),将空格字符作为分隔符,但结果当然不包括空格。我尝试了preg_match(),但没有成功,但这可能是因为找不到正确
' foo bar foobar '
特别地,单词是不包括空格的任何字符集。每个单词之间有一个或多个空格。前导空格和尾随空格是可选的
我想用最简单的方法将单词和空格分成一个集合,例如:
[ ' ', 'foo', ' ', 'bar, ' ', 'foobar', ' ']
我尝试使用explode()
,将空格字符作为分隔符,但结果当然不包括空格。我尝试了preg_match()
,但没有成功,但这可能是因为找不到正确的正则表达式
我可以一个字符一个字符地处理这个句子,但我觉得应该有一个更简单的方法。有什么建议吗?我尝试使用了以下对我有用的方法:
$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] =>
)
)
但这是最有效的方法吗?我将让您来判断:)也许可以检查($key%2)!=0)?我认为这会给所有的机会。而不是需要做一些疯狂的逻辑。谢谢,这做的工作。