急!! 正则表达式过滤html
请问各位高手,我想用正则表达式找到html指定的标签,然后过滤掉标签,用string保存其中间的文本内容。
找了很多质料,就是没找到一个合适的,请帮忙指点一下。
例如:
<table border=0 cellpadding=0 cellspacing=0 width=600 height=120>
<tr> <td height=10 colspan=2> </td> </tr>
<tr>
<td width=300 valign=top>
<table border=0 cellpadding=0 cellspacing=0 width=280>
<tr> <td height=10> </td> </tr>
<tr> <td align=right> <font color=#0d3cd4> 中央气象台2007年03月29日20时发布 </font> </td> </tr>
<tr> <td height=10> </td> </tr>
<tr> <td align=center> <font color=#0d3cd4> -2℃ ~ 11℃ </font> </td> </tr>
<tr> <td height=10> </td> </tr>
<tr> <td align=center> <font color=#0d3cd4> 多云 </font> </td> </tr>
</table>
</td>
把代码中的“多云”,“-2℃ ~ 11℃”抽出来,分别保存到string变量中
------解决方案--------------------String ss = " <font color=#0d3cd4> 中央气象台2007年03月29日20时发布 </font> </td> </tr> "+
" <tr> <td height=10> </td> </tr> <tr> <td align=center> "+
" <font color=#0d3cd4> -2℃ ~ 11℃ </font> </td> </tr> "+
" <tr> <td height=10> </td> </tr> <tr> <td align=center> "+
" <font color=#0d3cd4> 多云 </font> ";
String regex = " <font.*?> (.*?) </font> .*? <font.*?> (.*?) </font> .*? <font.*?> (.*?) </font> ";
Pattern p = Pattern.compile(regex,Pattern.DOTALL + Pattern.MULTILINE);
Matcher m = p.matcher(ss);
if (m.find()){
String s1 = m.group(1);
String s2 = m.group(2);
String s3 = m.group(3);
System.out.println( "s1 = " + s1);
System.out.println( "s2 = " + s2);
System.out.println( "s3 = " + s3);
}
------解决方案--------------------有公共的天气web services调用就可以了,何必这么麻烦呢?
------解决方案--------------------String noHtmlContent = content.replaceAll( " <[^> ]*> ", " ");
------解决方案--------------------还是楼上的比较精简
------解决方案--------------------调用webservice吧,这样不是办法,对方网页稍微有点改动你就完蛋了,重新写