利用Java抽取HTML中的内容当然不想JavaScript中那么简单(obj.innerHTML),但绝对是可以实现的,这里给大家介绍一种。
思路很直接:利用正则表达式配置html代码,然后删除这些代码。
当然还有一种方法是直接配置中文,这种方法虽然明显有问题,但对纯中文内容还是很准确。两种方法这里都提供。
我们需要配置的文字如下:
我们需要从中抽取出“[u]唐山大地震》公映[/u]”
[b]方法一:查找出html标签,然后删除[/b]
[b]方法二:匹配双字节字符(包括汉字在内):[^\x00-\xff][/b]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
好了,以上是我提供的两种方法,希望对大家有些帮助,也希望大家提供更多更好的方法。
文章地址:[url]http://javapub.iteye.com/blog/719658[/url]
思路很直接:利用正则表达式配置html代码,然后删除这些代码。
当然还有一种方法是直接配置中文,这种方法虽然明显有问题,但对纯中文内容还是很准确。两种方法这里都提供。
我们需要配置的文字如下:
<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>
我们需要从中抽取出“[u]唐山大地震》公映[/u]”
[b]方法一:查找出html标签,然后删除[/b]
public void findContent(){
// 配置html标记。
Pattern p = Pattern.compile("<(\\S*?)[^>]*>.*?| <.*? />");
String html = "<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>";
Matcher m = p.matcher(html);
String rs = new String(html);
// 找出所有html标记。
while (m.find()) {
System.out.println(m.group());
// 删除html标记。
rs = rs.replace(m.group(), "");
}
System.out.println("-----");
System.out.println(rs);
}
[b]方法二:匹配双字节字符(包括汉字在内):[^\x00-\xff][/b]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
public void findContent2(){
// 匹配双字节字符(包括汉字在内)
Pattern p = Pattern.compile("[^\\x00-\\xff]");
String html = "<td><a target=\"_blank\" href=\"http://www.baidu.com/baidu?cl=3&tn=baidutop10&fr=top1000&wd=%A1%B6%CC%C6%C9%BD%B4%F3%B5%D8%D5%F0%A1%B7%B9%AB%D3%B3\">《唐山大地震》公映</a></td>";
Matcher m = p.matcher(html);
while (m.find()) {
System.out.print(m.group());
}
}
好了,以上是我提供的两种方法,希望对大家有些帮助,也希望大家提供更多更好的方法。
文章地址:[url]http://javapub.iteye.com/blog/719658[/url]