我想替换一个个字符串,要求如下<img title='你好'src='xxx'>
你好
测试测试
你好
测试
<img title='你好' src='xxx'>
测试
上边是一个字符串,我想替换'你好'这个字符串,为'很好'但是只替换<img >中的,其他地方不替换
替换后如下:
<img title='很好'src='xxx'>
你好
测试测试
你好
测试
<img title='很好' src='xxx'>
测试
请问这个怎么写呀,高手指教

解决方案 »

  1.   

    规则要细化,按你现在的说法,这样就行了.
    $str = "<img title='你好'src='xxx'>
    你好
    测试测试
    你好
    测试
    <img title='你好' src='xxx'>
    测试";
    $s = preg_replace("/<(.[^>]*?)>/ise","str_replace('你好','很好','\\0');",$str);echo htmlspecialchars($s);
      

  2.   

    $s = preg_replace("/<(.[^>]*?)>/ise","str_replace('你好','很好','\\0');",$str);
    请问下楼上的老师
    str_replace('你好','很好','\\0'
    这个里边的\\0是什么意思啊?
      

  3.   

    匹配字符串:(<img .*?title=)([\"\'])(.*?)(你好)(.*?)(\2.*?>)
    替换字符串:$1$2$3很好$2$5$6至于怎样替换的代码,你自己写。不过,正则表达式对中文的支持不是很好,所以,如果能用其它方法来代替这种方式,可能会更好。
      

  4.   

    楼上的老师,为什么用你这个替换后会自动加上后变成
    <img height="60" width="80" alt="你好" src="/2009/06/19/d337953f0a43283296178743566dfc61.jpg" />
    替换后
    <img height="\&quot;60\&quot;" alt="\&quot;很好\&quot;" width="\&quot;80\&quot;" src="\&quot;/2009/06/19/63072cde66ee462a084df07e47cc4d53.jpg\&quot;" />怎么变这种了呀
      

  5.   

    我也写了一段,如果只是LZ那种情况的话还是适用的
    <?php$a= "
    <img title='你好'src='xxx'>
    你好
    测试测试
    你好
    测试
    <img title='你好' src='xxx'>
    测试 ";$p = "/(<img title=')([^']*)(' *src='[^']*'>)/";
    echo preg_replace($p,"\$1很好\$3",$a);
    ?>