0

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

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

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

现在我想在以下部分减少这个字符串:

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

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

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

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

希望这是可能的!

亲切的问候

4

3 回答 3

3

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

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

print_r($m);

看这里:

http://ideone.com/Xk1oV

于 2012-06-08T09:04:24.633 回答
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 :-)
于 2012-06-08T09:04:43.793 回答
2

尝试以下操作:

$first = substr($sting,0,1);
$second = substr($sting,1,2);
$third = substr($sting,3);
$fourth = end(explode(',',$sting));
于 2012-06-08T09:10:05.537 回答