日期:2014-05-20  浏览次数:20653 次

如何用正则表达式完成过滤HTML代码的功能?
有如下字符串
input:   <font   color   =Red> Status </Font>
output:   Status

使用正则表达式,谢谢。



------解决方案--------------------
public static String filterHtml(String str) {

if (StringUtil.isEmpty(str)) {
return " ";
}

Pattern pattern = Pattern.compile( " <[^ <|> ]*> ");
Pattern pattern1 = Pattern.compile( "&nbsp; ");
Matcher matcher = pattern.matcher(str);

String returnStr = matcher.replaceAll( " ");

Matcher matcher1 = pattern.matcher(returnStr);
return returnStr;
}

public static void main(String args[]) {
String html = " <h5> <span style=\ "FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: ; mso-hansi-font-family: \ "> 超前静音操作&nbsp; 娱乐玩家酷鼠 时尚随意翻转门&nbsp; 健康环保机箱 强力直冷风扇&nbsp; 幻影LCD状态窗 <br /> 镜面黑钢琴烤漆&nbsp; 冷酷蓝色光剑&nbsp; 震撼钢盔M-BOX&nbsp; 弧形飞翼设计&nbsp; 六键快速启动 内置键盘鼠标 <br /> H1:高清显示 H2:高响应 H3:高寿命 </span> </h5> ";
String str = filterHtml(html);
System.out.println(str);
}