减少这个巨大的字符串(PHP)

时间:2012-06-08 08:58:01

标签: php string query-string

我有以下字符串,需要将其剪成碎片。但是如何做到这一点呢?

字符串:$sting = 0nl10000143947019,23000143947456,....,10450143947022

...意味着更多的nrs可以在这里

现在我想在以下部分中删除此字符串:

$first包含字符串中的第一个nr或字母。所以在这种情况下应该是:0

$second包含字符串中的第二个和第三个nrs或字母。所以在这种情况下应该是:nl

$third包含字符串中第三个nr或字母后的所有内容。所以在这种情况下应该是:10000143947019,23000143947456,....,10450143947022

$fourth包含字符串中最后一个,之后的所有内容。注意,这个nr可以比这个例子更大或更小。所以在这种情况下应该是:10450143947022

希望这是可能的!

亲切的问候

3 个答案:

答案 0 :(得分:3)

正则表达式应该这样做,这是让你入门的东西

preg_match("/^(\d+)([a-z]+)(.*?,([^,]*))$/i", $string, $m);

print_r($m);

见这里:

http://ideone.com/Xk1oV

答案 1 :(得分:3)

使用简单的正则表达式

([0-9A-Za-z]{1})([0-9A-Za-z]{2})(.*)\,([^\,]+)$

应该有效。在PHP中,这将像

一样工作
$string = "0nl10000143947019,23000143947456,23000143947456,10450143947022";
preg_match("@([0-9A-Za-z]{1})([0-9A-Za-z]{2})(.*)\,([^\,]+)$@i", $string, $matches);
// map $matches to the right variables. But you can do that yourself :-)

答案 2 :(得分:2)

尝试以下方法:

$first = substr($sting,0,1);
$second = substr($sting,1,2);
$third = substr($sting,3);
$fourth = end(explode(',',$sting));