首先非常抱歉本人昨天发的帖子描述不够完整,而且本人天生笨蛋,所以再发帖请教一下正则的问题,请包涵。下面是文本: 
PROPERTY[DOMAINCHECK][0]=211 Domain name not available 
PROPERTY[DOMAINCHECK][1]=210 Domain name available 
...
PROPERTY[DOMAINCHECK][n]=*** Domain name ...
如何取出PROPERTY[DOMAINCHECK][0]和PROPERTY[DOMAINCHECK][1]后面=的三位数字值?注意,是后面的三位数字
如果附上讲解,更佳……

解决方案 »

  1.   

    $fp = fopen('test.txt', 'r'); //设 test.txt 为保存数据的文件 
    while($buf = fgets($fp)) {
      $ar[] = sscanf($buf, "PROPERTY[DOMAINCHECK][%d]=%d");
    }
    print_r($ar); //输出结果
      

  2.   

    正则比较菜 想了个分隔符的方法 
    <?php 
    $str = "PROPERTY[DOMAINCHECK][0]=211 Domain name not available ";
    $split_arr = explode("=",$str);
    $split_arr = explode(" ",$split_arr[1]);
    echo $split_arr[0];//211
    ?>
      

  3.   

    <?php
    $str="PROPERTY[DOMAINCHECK][0]=211 Domain name not available 
    PROPERTY[DOMAINCHECK][1]=210 Domain name available";
    preg_match_all('/PROPERTY\[DOMAINCHECK\]\[.*\]=(.*?\d{3}) Domain name/i',$str,$out);
    print_r($out);
    ?>正则说明:
    \d{3}  代表3位数字,如果要任意那么请把{3}去掉
    测试通过请给分
      

  4.   

    preg_match_all('/PROPERTY\[DOMAINCHECK\]\[.*\]=(.*?\d{3}) Domain name/i',$str,$out);ylw1230的这个可以,但不精确 , 建议把 =(.*?\d{3}) 改为 =\s*(\d{3})
      

  5.   

    你可以将读出的内容 $array=explode("\n",$str); foreach循环遍历的时候 对每一行做以上操作- -
      

  6.   

    确定取的是PROPERTY[DOMAINCHECK][0]和PROPERTY[DOMAINCHECK][1]$fp = fopen('test.txt', 'r'); //设 test.txt 为保存数据的文件 
    while($buf = fgets($fp)) { 
      preg_match_all('/PROPERTY\[DOMAINCHECK\]\[[0|1]\]=(.*?\d{3}) Domain name/i',$str,$out); 
      $a[]=$out[1];

    print_r($a);
      

  7.   

    哦,要求用正则$txt = <<<TEXT
    PROPERTY[DOMAINCHECK][0]=211 Domain name not available 
    PROPERTY[DOMAINCHECK][1]=210 Domain name available 
    ...
    PROPERTY[DOMAINCHECK][n]=*** Domain name ...
    TEXT;preg_match_all('/PROPERTY\[DOMAINCHECK\]\[[01]\]=(\d{3})/', $txt, $reg);print_r($reg[1]);
      

  8.   

    <pre>
    <?php
    $str = '
    PROPERTY[DOMAINCHECK][0]=211 Domain name not available 
    PROPERTY[DOMAINCHECK][1]=210 Domain name available 
    ';
    preg_match_all('/(?<==)\d{3}/',$str,$arr);
    print_r($arr[0]);
    ?>
      

  9.   

    preg_match_all('/PROPERTY\[DOMAINCHECK\]\[\d\]=(\d){3}/',$str,$arr);var_dump($arr);