1./**
 * 源码纠正
 * <br> --><br />
 * <br/> --><br />
 * @param html
 * @return
 */
public static String correctHtml(String html) {
String retVal = html;
retVal = retVal.replaceAll("(?ism)<br[\\s/]*>", "<br />");
return retVal;
}2.我测试了一下,感觉没啥问题 public static void main(String[] args) {
String html="sdfsdf<br>sdfsdf<BR>sdfsdf<br/>sdfssdfsdf<BR/>sdfsdfsdfsdf<br   />sdfsdfsdfsdf<br  /  >sdfsdf";
System.out.println(correctHtml(html));
//sdfsdf<br />sdfsdf<br />sdfsdf<br />sdfsdfsdfsdf<br />sdfsdfsdfsdf<br />sdfsdfsdfsdf<br />sdfsdf
}3.高人请指点

解决方案 »

  1.   

    没啥问题吧
    就是<br///////>也中招,但别人也不会这么写啊
    还有“\s匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格”
    换成空格字符是不是更切题一些。但\s也不影响实用
      

  2.   

    如果是用你写的那个测试字符串的确没什么问题,不过如果我添加一个sdfsdf< br> 这样的字符串你那个就没法匹配了,所以那个正则最好是(?ism)<[\\s/]*br[\\s/]*>而且如果写成空格在br前的话网页时没法解析的,而其它种形式都可以解析顺便问下,(?ism)是啥意思?忽略大小写?
      

  3.   

    sdfsdf< br> 
      

  4.   

    < br>
    这个是不合法的标签的!所以不用考虑,呵呵 我在dw中测试了,如果< br>这样的话是不换行了