锁定老帖子 主题:java去除html代码
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (9)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-05
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String content="<p>郎酒15年陈红花郎酒53°500ML,楼兰蛇龙珠戈壁干红(铁盒)750ML,组合 价699元。</p>"; Pattern patt=Pattern.compile("<[^>]+>([^<]*)</[^>]+>"); Matcher m=patt.matcher(content); while(m.find()){ content=content.replaceFirst("<[^>]+>([^<]*)</[^>]+>", m.group(1).toString()); } System.out.println(content); //郎酒15年陈红花郎酒53°500ML,楼兰蛇龙珠戈壁干红(铁盒)750ML,组合价699元。 } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-01-05
上帝啊。。。如果都是平衡的标签, 如果html有很多换行都没有问题。
|
|
返回顶楼 | |
发表时间:2011-01-05
自结束的标签行不行<div />类型的
|
|
返回顶楼 | |
发表时间:2011-01-05
我是直接
<[a-zA-Z/]+?> 不过对<script>xxx</script>和<style></style>不好使,所以对于<script>和<style>提前用别的方式处理了 |
|
返回顶楼 | |
发表时间:2011-01-05
使用jsoup,一行代码
http://www.java1995.cn/group/topic/111 |
|
返回顶楼 | |
发表时间:2011-01-06
我关心的是如果遇到异常html会不会混乱。。。比如不关闭标签的html以及自结束的标签
|
|
返回顶楼 | |
发表时间:2011-01-06
east_java 写道 使用jsoup,一行代码
http://www.java1995.cn/group/topic/111 还真不知道jsoup,今天先简单看了下,很不错哦,就是不知道有没有人研究过源码... |
|
返回顶楼 | |
发表时间:2011-01-06
不知道这样截取有什么实际的应用,没有含义的文字,也没本质的价值吧!
如果仅仅只是去除< />之类的标签,我想if 。。。else也能实现,用通配符效率是不是太低了? |
|
返回顶楼 | |
发表时间:2011-01-06
完整的提取html文本是很复杂的事情, 通常情况下, 要实现按tag提取, 才能做到比较完善。 我曾经实现过一些, 主要用来做数据信息摘要。
实现html的解析 实现每个tag的处理机制 实现实体解析 这跟做html的安全显示也是一个道理。 如果小项目, 要求不高, 还是无所谓了。 象搜索引擎里, 提取文本数据那就更复杂了。难度就是抓取文本的主体。 虚拟可视化技术~ |
|
返回顶楼 | |
发表时间:2011-01-06
最后修改:2011-01-06
有点看不懂
public static void main(String[] args) { // TODO Auto-generated method stub String content="<p>郎酒15年陈红花郎酒53°500ML,楼兰蛇龙珠戈壁干红(铁盒)750ML,组合价699元。</p>"; Pattern patt=Pattern.compile("<[^>]+>([^<]*)</[^>]+>"); Matcher m=patt.matcher(content); m.find() System.out.println(m.group(1).toString()); //郎酒15年陈红花郎酒53°500ML,楼兰蛇龙珠戈壁干红(铁盒)750ML,组合价699元。 } 这样就可以了,为什么还需要 while(m.find()){ content=content.replaceFirst("<[^>]+>([^<]*)</[^>]+>", m.group(1).toString()); } 这句啊 |
|
返回顶楼 | |