php需要正则表达式的帮助

时间:2017-01-15 11:26:55

标签: php regex

我想在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

有人可以帮助我吗?提前谢谢!

2 个答案:

答案 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

  1. -分割。结果将是0605052&&5&7&8
  2. 第一个结果0605052&&将帮助您创建基础。简单地通过查找&的第一次出现和下一个到最后一个数字的子串来对数字进行子串。结果将为060505。你还需要最后一个号码,所以也要得到它(在这种情况下是2)。
  3. 现在获取剩余的结尾,所有\d&都很简单,只需取字符串的第一个字符(或者如果这些字符可以多于一个,请使用第一次出现&的子字符串再次接近)。
  4. 最后一个数字很简单:它是8
  5. 现在你掌握了所有重要的价值观。您可以生成结果:

    来自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