不明白你想做什么
eregi('a(.*)aa', $r, $res);
eregi('a(.?)aa', $r, $res);
.   匹配任意单个字符
*   匹配0或多个它之前的那个字符
?   匹配0或1个它之前的那个字符eregi('a(.*?)aa', $r, $res); 
.*?是什么意思?*?能连着用吗?

解决方案 »

  1.   

    *后面加上?不是表示最小匹配吗,如果只是*默认将是贪婪匹配啊?我想实现的功能是:
    比如
    $r="afffffaaddddaaj";提取afffffaa,而非afffffaaddddaa
    继续等待好心人解决,谢谢!
      

  2.   

    非贪婪匹配 U
    <?  
    $str = 'afffffaaddddaaj';
    $pattern = '/a(.*)aa/U';
    if (preg_match($pattern,$str,$match))
    {
    echo $match[0];
    }
    ?>
      

  3.   

    .*?可以实现非贪婪匹配,但eregi函数不行。

    <?  
    $str = 'afffffaaddddaaj';
    $pattern = '/a(.*?)aa/';
    if (preg_match($pattern,$str,$match))
    {
    echo $match[0];
    }
    ?>