如何使用整数值作为分隔符进行爆炸

时间:2014-07-17 08:49:32

标签: php substring explode delimiter

我在php中得到一个字符串值 -

How are you|1 I am fine|2 That is fine|3

我想将此字符串分解为此整数值。基本上我需要这3个值。

How are you|1 
I am fine|2 
That is fine|3

有人可以建议我该怎么做。

4 个答案:

答案 0 :(得分:5)

尝试使用preg_split()使用一些正则表达式而不是explode()

$arr = preg_split('#(?<=\|\d )(?=[a-z])#i', "How are you|1 I am fine|2 That is fine|3");

将字符串拆分为管道字符 | ,后跟数字,后跟空格。

修改

如果空格可以是新行或回车符,请在其中添加或条件:

$arr = preg_split('#(?<=\|\d( |\n|\r))(?=[a-z])#i', "How are you|1 I am fine|2 That is fine|3");

答案 1 :(得分:2)

尝试使用preg_match_all

$str     = 'How are you|1 I am fine|2 That is fine|3';
$pattern = '/(\D+)(\d+)/';
$res     = preg_match_all($pattern, $str, $matches);
print_r($matches[0]);

答案 2 :(得分:1)

您可以使用65Fbef05

中的技巧

在你的情况下将是

$str = 'How are you|1 I am fine|2 That is fine|3';
$del = array(1, 2, 3);

// In one fell swoop...
$arr = explode( $del[0], str_replace($del, $del[0], $str) );

答案 3 :(得分:0)

尝试使用chr(13)作为分隔符进行爆炸。

试试这个循环。

$extras = $db->loadRowList();

            $num=sizeof($extras);
            for($i=0;$i<$num;$i++)
            {               
                echo "<br>".$extras[$i][0]."<br>";    
                $arr=explode(chr(13),  $extras[$i][0]);

                $num1=sizeof($arr);
                for($j=0;$j<$num1;$j++)
                {
                    $tmp = explode('|', $arr[$j]);

                    $num2=sizeof($tmp);
                    for($k=0;$k<$num2;$k++)
                    {
                        echo $tmp[$k]."<br>";
                    }                       
                }
            }