我的这个函数支持img p br font标签,但会把类似这样的也去除:
1.
2.
3. <测试>
怎样既支持上面的标签,又能较准确的去除html代码?
我觉得应该是:满足以 <开头并且紧跟着字母同时又排除img p等标签的需要被去除。
不如这样的正则应该如何写?多谢
[code="java"]
public class test {
public static void main(String[] args) {
String content;
content = "<img>image_url</font>";
System.out.println(stripTags(content));
}
public static String stripTags(String content) {
if (content == null)
return null;
content = content.replaceAll("<(?!/?(?i)(img|p|br|font)).*?>", "");
return content;
}
}
[/code]
楼主不是写的很好么,最好加些注释,这样更好看些。
[code="java"]content.replaceAll("<" + //开头的 '<'
"(?!" + //正向预搜索否定
"/?" + // 0或1次 '/'
"(?i)" + //IGNORECASE
"(img|p|br|font))" + //支持的标签
".*?" + //匹配剩下的 勉强模式
">" //最后的 '>'
, "");[/code]
你要过滤哪些标签,就把这些标签的名字放到一个list里,
比如
//要过滤的标签名数组
List list = new ArrayList();
list.add("");
list.add("
");
。。。
for(int i=0;i<list.size();i++)
{
content = content.replaceAll(list.get(i), "");
}