/**
* 过滤html标签
* @param s - html字符串
* @param tag - a,p,img,div,(不区分大小写)
* @param contain - 是否过滤掉标签内包含的内容
* @return
*/
public static String filterTag(String s, String tag,boolean contain) {
// String regexp = "<\\s*"+tag+"\\s*([^>]*)\\s*>|</\\s*"+tag+"\\s*>";
// String regexp = "<\\s*"+tag+"\\s*([^>]*)>|</\\s*"+tag+"\\s*>";
// String regexp = "<\\s*"+tag+"\\s*([^>]*)>[\\S\\s]*</\\s*"+tag+"\\s*>";
String regexp = null;
if(contain){
//懒惰匹配的加问号,如*?,最小匹配
regexp = "<[\\s]*?"+tag+"[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?"+tag+"[\\s]*?>";
//regexp = "<\\s*"+tag+"\\s*([^>]*)>[\\S\\s]*</\\s*"+tag+"\\s*>";
}else{
regexp = "<\\s*"+tag+"\\s*([^>]*)>|</\\s*"+tag+"\\s*>";
}
Pattern pattern = Pattern.compile(regexp,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(s);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "");
// System.out.println(matcher.group());
}
matcher.appendTail(sb);
return sb.toString();
}