有一段html文本,只想去掉class 和 id属性,但要保留原结构和其他正常属性,就是如下例子<div class="content">
   <div id="t1">
       文本1
   </div>   
   <p class="bbb">
       文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
   </p>
</div>希望最终结果为<div>
   <div>
       文本1
   </div>   
   <p>
       文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
   </p>
</div>jsp 里面的replaceAll()怎么写?或者用正则怎么处理,谢谢

解决方案 »

  1.   


    String newcontent = oldcontent.replaceAll("\\s*(?:class|id)=\"[^\"]+\"","");
      

  2.   

    楼主的这种需求如果用jquery来写就相当方便了。
    $("div").removeAttr("class");
    如果在jsp里写的话,就直接用js啊。
      

  3.   

    import java.util.regex.Pattern;
    public class TestP {
    public static void main(String[] args){
    String regex="(?im)(?<=[<](div)|p)([^<>]*?)((id=\"[\\w]*\")|(class=\"[\\w]*\"))(?=[^<>]*?>)";
    String s="<div class=\"content\">\n"+
      "<div txt=\"65\" class=\"22\"  id=\"t1\" c=\"dd\">\n"+
      "文本1\n"+
      "</div>\n"+   
      "<p id=\"33\" class=\"bbb\">\n"+
      "文本2.....<font color='#00000'>文本3</font><span style=\"line-height:24px;\">文本4</span>\n"+
      "</p>\n"+
    "</div>\n";
    System.out.println(s);
    s=s.replaceAll(regex,"$2");
            s=s.replaceAll(regex,"$2"); System.out.println(s);
    }
    }执行两次就OK了
      

  4.   

    <div class="content">
    <div txt="65" class="22"  id="t1" c="dd">
    文本1
    </div>
    <p id="33" class="bbb">
    文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
    </p>
    </div><div >
    <div txt="65"    c="dd">
    文本1
    </div>
    <p  >
    文本2.....<font color='#00000'>文本3</font><span style="line-height:24px;">文本4</span>
    </p>
    </div>