代码: $txt="------------<br/>你好吗<br/>------------<br/>我就是说啊------------";
ereg("(------------)(.*)(------------)",$txt,$a);
echo $a[0];输出的内容竟然是:
<br/>你好吗<br/>------------<br/>我就是说啊
我想要的只是:
<br/>你好吗<br/>
我在那里面加个?,结果就报错了

解决方案 »

  1.   


    <?php
    $txt="------------<br/>你好吗<br/>------------<br/>我就是说啊------------";
    $p = '|------------(.*?)------------|ims';
    $p = '|(<br/>.*?<br/>)|';
    //上面两个正则都行
    if(preg_match($p,$txt,$match)){
    print_r($match[1]);
    }//顺便说下 ereg的函数在最新的php版本里面已经取消了!
      

  2.   

    这个可以不用正则
    explode("------",$string);
      

  3.   

    explode("------",$string);就可解决!如果非要用正则
    $txt="------------<br/>你好吗<br/>------------<br/>我就是说啊------------";
    preg_match("/^[-]+([^-]+)[-]+/",$txt,$match);
    print_r($match[1]);
    //输出<br/>你好吗<br/>
      

  4.   

    推荐楼主不要用ereg,不够强大,首选preg。
    如果是小型的匹配操作还可以考虑str,速度比preg快很多。