在这个例子中preg_split中使用的正则表达式是什么?
实施例
<?$a='Word with white trailing spaces. ';
输出
Array(
[0] => 'Word ',
[1] => 'with ',
[2] => 'white ',
[3] => 'trailing ',
[3] => 'spaces. '
)
我不知道在php中的正则表达式。我只需要最小化代码。也许有人可以帮助我并解释一下回答的正则表达式
答案 0 :(得分:1)
编辑:我看到OP需要解释。 基本上()将一个单词\ w +和任何非单词\ W +组合起来直到它找到一个新单词@)。所以(这里的任何东西)= $ 1
$str = "Word with white trailing spaces. ";
$split = preg_split("/(\w+\W+)/", $str, null, PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);
var_dump($split);
答案 1 :(得分:0)
嗯,这是一个选项:
array_map('join',
array_chunk(
preg_split('/(\s+)/', $a, null,
PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY),
2));
逐步采取行动。
按任意数量的空格分割 - \s+
但请记住空白 - 这是括号和PREG_SPLIT_DELIM_CAPTURE标志。
这为您提供了一个如下所示的数组:
array('Word', ' ', 'with', ' ', 'white', ' ',
'trailing', ' ', 'spaces.', ' ')
将结果传递给array_chunk
,chunk_size为2。
现在我们有一个2元素数组的数组:
array(array('Word', ' '), array('with', ' '), ... )
将结果传递给array_map
,回调为join
- 将每对字符串连接成一个字符串,并为我们提供所需的结果:
array('Word ', 'with ', ...);