<?php 
$idata=$_POST['ddd']; 
if ($idata) 

$regstr="/\d\.(.*?)[a,A]\.(.*?)[b,B]\.(.*?)[c,C]\.(.*?)[d,D]\.(.*?)/is"; if(preg_match_all($regstr,$idata,$a)) 

    
    foreach ($a as $b) 
      print_r($b); 
    


?> 上面打印$a做什么呢?不是想看匹配出来的值吗,应该是$b呀

解决方案 »

  1.   

    你这个问题是由于使用了懒惰模式造成的。$regstr="/\d\.(.*?)[a,A]\.(.*?)[b,B]\.(.*?)[c,C]\.(.*?)[d,D]\.(.*?)/is"; 最后这里的[d,D]\.(.*?)用贪婪模式,别用懒惰模式。改为[d,D]\.(.*)另外,你都加入i选项了,干嘛还顾及大小写?
    把正则改为:
    /\d\.(.*?)[a]\.(.*?)[b]\.(.*?)[c]\.(.*?)[d]\.(.*)/is
      

  2.   

    既然post过来的整个内容你都要,干嘛还用正则去取啊???