我不记得确切的说法是怎么说的,但是...
“你有一个问题并决定使用正则表达式......现在你有两个问题。”
如果我们假设 'test:' 不是要解析的实际字符串的一部分,您的问题很容易解决。
<?php
$in = '002005@1111@333333@;10205@2000@666666@;002005@1111@55555@;';
function splitGroupsAndGetColumn($input, $groupSeparator, $columnSeparator, $columnIndex, $skipEmpty=true)
{
$result = array();
$groups = explode($groupSeparator, $input);
foreach($groups as $group)
{
$columns = explode($columnSeparator, $group);
if (isset($columns[$columnIndex]))
{
array_push($result, $columns[$columnIndex]);
}
else if (! $skipEmpty)
{
array_push($result, NULL);
}
}
return $result;
}
var_dump(splitGroupsAndGetColumn($in, ';', '@', 2));
输出:
array(3) {
[0]=>
string(6) "333333"
[1]=>
string(6) "666666"
[2]=>
string(5) "55555"
}