【50分】过滤网页HTML标记-求方法
大家好!
现在小弟遇到一个问题,困扰了我很久了
如下:用java 程序抓取了指定的网页,将内容保存到string 的对象里,我现在想把它去掉 <html> , <title> , <table> ...等等的符号,换句话说就像是在网页上
【全选】-> 【复制】完成这样的功能在保存成String 对象
[绝对不能人工参与~~~~]
希望各位帮忙,解决问题,马上给分~~~小弟谢谢先
------解决方案--------------------关注中
------解决方案--------------------自己写程序字符串处理
去掉从 <到> 的内容就可以了
------解决方案--------------------System.out.println( " <a> asdfasdf <b> ".replaceAll( " <[^> ]*> ", " "));
大概思想就是这样.具体细节还要修改正则表达式.
------解决方案--------------------想要精确删除的话,其实html的标签并不是很多~~~
都丢到一个容器里面去,越常用的放在越前面,然后就跟容器里面的数据进行比较吧~~~
------解决方案--------------------把需要过滤的HTML标记写成正则表达式
或者用HTMLEncoder把 <> 转码....
------解决方案--------------------我也急切关注....
------解决方案--------------------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);
}
}
怎么今天遇到两个类似的问题呢。
------解决方案--------------------路过,我连提取都不会,汗
------解决方案--------------------mark