六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 29|回复: 0

HTML转纯文本,求吐槽

[复制链接]

升级  34.67%

22

主题

22

主题

22

主题

秀才

Rank: 2

积分
102
 楼主| 发表于 2013-2-3 11:16:49 | 显示全部楼层 |阅读模式
首先吐槽一下iteye的问卷。
然后,闲的蛋疼做了一个HTML转纯文本的小工具类。
当然功能上只保留了一些最简单的例如<br>,<p>,<div>把它们转换成\n。


package com.yyt.core.utils.net.ubb;import java.util.regex.Pattern;public class HTMLUtils {private static final Pattern HTML_CHECKER = Pattern.compile("</[a-z][^>]*>|<[a-z][^/>]*/>");public static String toText(String html) {if (html == null)return null;boolean is = isHtml(html);if (is) {html = html.replaceAll("\r?\n", "").replaceAll("<[sS][tT][yY][lL][eE] [^>]+>[\\d\\D]+?</[sS][tT][yY][lL][eE]>","").replaceAll("<[sS][tT][yY][lL][eE]>[\\d\\D]+?</[sS][tT][yY][lL][eE]>","").replaceAll("<[sS][cC][rR][iI][pP][tT] [^>]+>[\\d\\D]+?</[sS][cC][rR][iI][pP][tT]>","").replaceAll("<[sS][cC][rR][iI][pP][tT]>[\\d\\D]+?</[sS][cC][rR][iI][pP][tT]>","").replaceAll("<[tT][aA][bB][lL][eE] [^>]+>[\\d\\D]+?</[tT][aA][bB][lL][eE]>","").replaceAll("<[tT][aA][bB][lL][eE]>[\\d\\D]+?</[tT][aA][bB][lL][eE]>","").replaceAll("\n*(<(?!\\s)[^>\n]+>)\n*", "$1").replaceAll("(</?[bB][rR]\\s*+/?[^>]*+>|</?[pP][^>]*+>|</[dD][iI][vV][^>]*+>|</[lL][iI][^>]*+>)\\s*+","\n");}return html = html.replaceAll("</?(?!\\s)[a-zA-Z][^>]*>", "").replaceAll("<!--[\\d\\D]*?-->", "").replaceAll("\n{2,}", "\n");}public static boolean isHtml(String html) {return HTML_CHECKER.matcher(html).find();}}

啊咧,有没有发错版块呢?
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表