从数据库里读出一段数据例如:
<font color=#00000>Hello</font>
怎么用java程序去掉所有的html代码,只显示Hello,
小第先谢了啊!

解决方案 »

  1.   

    package edu.cust.test;import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class HtmlFliter { private Pattern p; private Matcher m; public String htmlChanger(String regEx, String htmlTag, String replaceStr) { String ret = "";
    try {
    p = Pattern.compile(regEx);// 设置比较模式
    m = p.matcher(htmlTag);
    boolean rs = m.find();
    ret = p.matcher(htmlTag).replaceAll(replaceStr); } catch (Exception e) {
    } return ret;
    } public static void main(String[] args) { String htmlToChange = "<font color=#00000>Hello</font>";//你要转换的HTML标记。 String yourRegEx = "(<\\s*[a-zA-Z][^>]*>)|(</\\s*[a-zA-Z][^>]*>)";//这个就是对应的去掉HTML标记的正则表达式 String replaceStr = "";//这个是你要将它替换的字符串,因为你要消去HTML标记,所以这里用空串。 HtmlFliter fliter = new HtmlFliter();

    String result = fliter.htmlChanger(yourRegEx, htmlToChange, replaceStr); System.out.println("---->: " + result); }
    }
      

  2.   

    当然如果去掉<style></style>
    <script></script>也许有些不好用。
    试试下面的正则表达式。
    (<\\s*script\\s*>\\s*([a-zA-Z])*\\s*|([\\u4e00-\\u9fa5])*|([^\\x00-\\xff])*</\\s*script\\s*>)(<\\s*style\\s*>)\\s*([a-zA-Z])*\\s*|([\\u4e00-\\u9fa5])*|([^\\x00-\\xff])*(</\\s*style\\s*>)