空返回preg_split [how]?

时间:2013-01-15 11:55:38

标签: php preg-split

我有这样的字符串

$string = '$foo$wow$123$$$ok$';

我想返回空字符串并将数组保存在数组中

0 = foo
1 = wow
2 = 123
3 = 
4 =
5 = ok

我使用PREG_SPLIT_NO_EMPTY,我知道当make PREG_SPLIT_NO_EMPTY返回时不为空,但我希望任何结果为空,我希望我的结果保存在变量数组中,如PREG_SPLIT_NO_EMPTY {{{} 1}}

这是我的preg_split:

$chars[$i];

我想,我的结果显示循环。没有在对象循环中我想要纯粹的循环:

$chars = preg_split('/[\s]*[$][\s]*/', $string, -1, PREG_SPLIT_NO_EMPTY); 

for($i=0;$i<=5;$i++){
     echo $i.' = '.$chars[$i];
}

显示我的结果。

我如何使用这个preg_split, 谢谢你提前......

2 个答案:

答案 0 :(得分:3)

使用爆炸

$str = '$foo$wow$123$$$ok$';
$res = explode ("$",$str);

print_r($res);


Array
(
    [0] => 
    [1] => foo
    [2] => wow
    [3] => 123
    [4] => 
    [5] => 
    [6] => ok
    [7] => 
)

答案 1 :(得分:0)

使用explode会在前面和后面添加空条目。

这个匹配tcs预期输出:

$str = '$foo$wow$123$$$ok$';
preg_match_all("@(?<=\\$)[^\$]*(?=\\$)@", $str, $res);

echo "<pre>";
print_r($res);
echo "</pre>";

[0] => Array
    (
        [0] => foo
        [1] => wow
        [2] => 123
        [3] => 
        [4] => 
        [5] => ok
    )