如:猪肉的价格为10-12,鱼的价格为6,白菜为1.5我现在需要把10-12,6,1.5三个都提取出来.现在5,1.5这两个匹配出来了,还有个10-12暂时未解决,欢迎大家来讨论,谢谢.

解决方案 »

  1.   


    <?php   
    $str="猪肉的价格为10-12,鱼的价格为6,白菜为1.5 ";
    $pattern="/\d+(\\.\d+)?(-\d+(\\.\d+)?)?/";
    preg_match_all($pattern,$str,$output);
    foreach($output[0] as $value)
    echo "$value  ";
    ?> 
      

  2.   

    <?php
    $a='猪肉的价格为10-12,鱼的价格为6,白菜为1.5';
    preg_match_all('/[0-9]+[-\.]*[0-9]*/',$a,$arr);
    print_r($arr);
    /**输出Array
    (
        [0] => Array
            (
                [0] => 10-12
                [1] => 6
                [2] => 1.5
            ))**/
    ?>
      

  3.   

    '/[\d-.]+/i'
    大家注意看LZ的结贴率……
      

  4.   

    <?php
    $a='猪肉的价格为10-12,鱼的价格为6,白菜为1.5';
    preg_match_all('/[0-9]+[-\.]*[0-9]*/',$a,$arr);
    print_r($arr);
    /**输出Array
    (
        [0] => Array
            (
                [0] => 10-12
                [1] => 6
                [2] => 1.5
            ))**/
    ?>改成这样即可了,preg_match_all('/[0-9.]+[-\.]*[0-9.]*/',$a,$arr);谢谢2,4,5,8楼的牛人,谢谢大家.