我想在PHP中解析和扩展给定的字符串。
这
0605052&&-5&-7&-8
0605052&&-4&-7
0605050&&-2&-4&-6&-8
要
0605052, 0605053 ,0605054 ,0605055, 0605057, 0605058
0605052,0605053,0605054,0605057
0605050,0605051,0605052,0605054,0605056,0605058
有人可以帮助我吗?提前谢谢!
答案 0 :(得分:0)
你的问题不是很清楚,但我认为你的意思是这样的解决方案:
已编辑:现在显示的是洞范围,而不仅仅是指定的数字。
Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])
这提供:
结果[0] =" 0605052"
结果[1] =" 0605053"
结果[2] =" 0605054"
结果[3] =" 0605055"
结果[4] =" 0605057"
结果[5] =" 0605058"
答案 1 :(得分:0)
我认为采取多步骤方法是最好的办法。
E.g。以此为例0605052&&-5&-7&-8
:
-
分割。结果将是0605052&&
,5&
,7&
,8
0605052&&
将帮助您创建基础。简单地通过查找&
的第一次出现和下一个到最后一个数字的子串来对数字进行子串。结果将为060505
。你还需要最后一个号码,所以也要得到它(在这种情况下是2
)。\d&
都很简单,只需取字符串的第一个字符(或者如果这些字符可以多于一个,请使用第一次出现&
的子字符串再次接近)。8
。现在你掌握了所有重要的价值观。您可以生成结果:
来自2的最后一个数字,来自3的所有数字和来自4的数字以及你的基数是第一部分。此外,您需要生成最后一个数字2的所有数字以及3.循环中的第一个结果,步长为1并将其附加到您的基数。
示例代码:
<?php
$str = '0605052&&-5&-7&-8';
$split = explode('-', $str);
$firstAmpBase = strpos($split[0], '&');
$base = substr($split[0], 0, $firstAmpBase - 1);
$firstEnd = substr($split[0], $firstAmpBase - 1, 1);
$ends = [];
$firstSingleNumber = substr($split[1], 0, strpos($split[1], '&'));
for ($i = $firstEnd; $i < $firstSingleNumber; $i++) {
array_push($ends, $i);
}
array_push($ends, $firstSingleNumber);
for ($i = 2; $i < count($split) - 1; $i++) {
array_push($ends, substr($split[$i], 0, strpos($split[$i], '&')));
}
array_push($ends, $split[count($split) - 1]);
foreach ($ends as $end) {
echo $base . $end . '<br>';
}
?>
输出:
0605052
0605053
0605054
0605055
0605057
0605058