String k="<color=red>test</color>。</font></size></color> <s:8> <s:34><br/> 1....";
System.out.println(
k.replaceAll("<[^<|^>]*>", "")
); 这样可以过滤掉所有html标签
但我想其中的<br/>不进行过滤,其余的都过滤
如何做到?

解决方案 »

  1.   

    public class Test2 {    public static void main(String[] args) {
            String str = "<color=red>test</color>。</font></size></color><s:8><s:34><br/> 1....\n" +
             "<COLOR=RED>test</COLOR>。</Font></Size></Color><S:8><S:34><BR /> 1....\n" +
             "<color=red>test</color>。</font></size></color><s:8><s:34><br> 1....";        
            String regex = "(?i)<(?!br\\s*/?)[^>]*>";
            str = str.replaceAll(regex, "");
            System.out.println(str);
        }
    }
      

  2.   

    我有一个办法,呵呵、、、
    你可以重新写一个覆写repace函数,将你输入的字符串变成数组,判断某个字符是不是'<',他的下一个是不是b....类似向下,还可以取出四个字符,明白吧,呵呵,这个方法有点笨,但是可以解决你的问题,还有你可以吧这个函数写的灵活一点,两个参数,一个是你的字符创,你个是你不想过滤的!ok!