顺便问个问题,不能不劳而获啊,哈哈页面中只有一个<h4>
正则替换
<h4>不定内容&nbsp;不定内容&nbsp;还是不定内容&nbsp;个数也不确定</h4>
替换为
<h4>不定内容,不定内容,还是不定内容,个数也不确定</h4>因为写在一段function里面,该function涉及处理其他文字,要求只用单语句一次替换完成,不能影响到<h4>以外的内容,<h4>以外也有其他&nbsp;的,不能动最高只能给100分啊?!

解决方案 »

  1.   

    鸟的,原来这边不是猩猩,csdn的积分政策都忘光了……
      

  2.   

    把 &nbsp; 换成“,”不就行了吗$str = str_replace('&nbsp;',',',$str);
      

  3.   

    哦 <h4>外面的受影响了,恩 不好
      

  4.   

    再说清楚点吧:ABC&nbsp;不知道什么内容<h4>不定内容&nbsp;不定内容&nbsp;还是不定内容&nbsp;个数也不确定</h4>
    替换为
    ABC&nbsp;不知道什么内容<h4>不定内容,不定内容,还是不定内容,个数也不确定</h4>
      

  5.   

    welcome back~
    try
    $html = <<<html
    正则替换&nbsp;
    <h4>不定内容&nbsp;不定内容&nbsp;还是不定内容&nbsp;个数也不确定</h4>
    替换为&nbsp;
    <h4>不定内容,不定内容,还是不定内容,个数也&nbsp;不确定</h4>
    &nbsp;
    html;
    echo preg_replace('#(?<=<h4>)((?:(?!</h4>).)*)(?=</h4>)#ise',"str_replace('&nbsp;','','$1')",$html);
      

  6.   

    这样也可以的。$str = <<<eof
    不定内容&nbsp;<h4>不定内容&nbsp;不定内容&nbsp;还是不定内容&nbsp;个数也不确定</h4>不定内容&nbsp;不定内容
    eof;
    echo preg_replace('/(<h4>.*?<\/h4>)/ise',"str_replace('&nbsp;',',','$1')",$str);
      

  7.   

    你第一个正则写错了,逗号变删除了,害我查半天,呵呵关键是我不晓得/e的回调用法,中间的我会匹配,
    刚开始只是<h4><a...>abc</a>&nbsp;<a...>def</a></h4>,好办直接换成</a>,<a...>就行
    后来遇到没有超链接的文本就犯难了又学到一手,谢谢!