楼主呀,你真会浪费可用分呀。
我是没有好办法,只有一个土办法了。你试试看。
有谁比我的好我也会关注的。<?php
$s = '[url="http://www.abc.com/abc.htm"]
[url="http://www.webdisallow.com/abc.htm"]
webdisallow.com其它文字webdisallow.net
[url="http://www.webdisallow.net/exchange/apfenpianqi.jpg"]
其它文字...
';
$s = str_replace("webdisallow", "XXX", $s);
$s = preg_replace("/(\[img\].*)XXX(.*\[\/img\])/", "\\1webdisallow\\3", $s);
echo($s);
?>

解决方案 »

  1.   

    好像还差点.
    得到结果是:
     [url="http://www.abc.com/abc.htm"] [url="http://www.XXX.com/abc.htm"] XXX.com其它文字XXX.net [url="http://www.XXX.net/exchange/apfenpianqi.jpg"] 其它文字...
    少了第一个[/img]了,再等
      

  2.   

    这是一个变通的容易理解容易处理的方法
    <script>
    str = '[url="http://www.abc.com/abc.htm"][url="http://www.webdisallow.com/abc.htm"]webdisallow.com其它文字webdisallow.net[url="http://www.webdisallow.net/exchange/apfenpianqi.jpg"]其它文字...'
    str1 = str
    str = str.replace(/(\[img\][^\[]*)webdisallow([^\[]*[\[\/img\]])/gi,"$1■$2")
    str = str.replace(/webdisallow/gi,"xxx")
    str = str.replace(/■/gi,"webdisallow")
    alert(str1+"\n\n"+str)
    </script>直接的再让我想想
      

  3.   

    谢谢 shuangren(土狗早睡早起)!
    可是这是要在写入数据库之前做的事情,所以最好能给我PHP的,谢谢!
      

  4.   

    做不出来,很费脑筋,请高手吧 -_-PHP不会,俺点错了才到这个版的。但是正则表达式的格式我想都一样,不需要变很多吧?
      

  5.   

    不用正则是最好的1、先把所有的webdisallow替换成#########
    2、用正则把中间的########替换成webdisallow
    3、把所有的#########替换成XXX/\[img\].+([\#]{9}).+\[\/img\]/i
      

  6.   

    原来搞错了,现在没有问题了。
    <?php
    $s = '[url="http://www.abc.com/abc.htm"]
    [url="http://www.webdisallow.com/abc.htm"]
    webdisallow.com其它文字webdisallow.net
    [url="http://www.webdisallow.net/exchange/apfenpianqi.jpg"]
    其它文字...
    ';
    $s = str_replace("webdisallow", "XXX", $s);
    //echo $s;
    $s = preg_replace("/(\[img\].*)XXX(.*\[\/img\])/isU", "\\1webdisallow\\2", $s);
    echo($s);
    ?>
      

  7.   

    To: shuangren(土狗早睡早起)
    原来我给出的例子里就是有人输入“■”,那些人太怪了!什么都输进去!
    不过原理我明白了.
      

  8.   

    结贴.
    请keaizhong(可爱钟),eglic(圪圪),shuangren(土狗早睡早起)到这里领分!谢谢
    http://community.csdn.net/Expert/topic/3954/3954008.xml?temp=.393017