提示:使用java正则表达式去除html标签
由于业务对接别的公司的几个接口,接口返回的数据内容是整个html,所以要去除掉一部分,只保留自己需要的。下面是html的一部分做测试示例:
这是图片
代码如下(示例):
public static void main (String[] args){ String s = delHTMLTag(html); System.out.println(s); } public static String delHTMLTag(String htmlStr){ String html = "<[^>]+>"; //定义HTML标签的正则表达式 Pattern p_html = Pattern.compile(html,Pattern.CASE_INSENSITIVE); Matcher m_html = p_html.matcher(htmlStr); htmlStr=m_html.replaceAll(""); //过滤所有html标签 return htmlStr.trim(); //返回文本字符串 }存在回车符‘/n’没去除掉
代码如下(示例):
public static void main (String[] args){ String s = delHTMLTag(html); System.out.println(s); } public static String delHTMLTag(String htmlStr){ String html = "<\\s*IMG\\s+([^>]+)\\s*>"; //仅去除img标签 Pattern p_html = Pattern.compile(html,Pattern.CASE_INSENSITIVE); Matcher m_html = p_html.matcher(htmlStr); htmlStr=m_html.replaceAll(""); //过滤所有img标签 return htmlStr.trim(); //返回文本字符串 }代码如下(示例):
public static void main (String[] args){ String s = delHTMLTag(html); System.out.println(s); } public static String delHTMLTag(String htmlStr){ //仅仅保留p标签和img标签,可自己修改保留其他标签,格式如下 String html = "</?(?!img|p|/?p\\\\d)[^>]+>"; Pattern p_html = Pattern.compile(html,Pattern.CASE_INSENSITIVE); Matcher m_html = p_html.matcher(htmlStr); htmlStr=m_html.replaceAll(""); //除p标签和img标签,过滤其他html标签 return htmlStr.trim(); //返回文本字符串 }还有一个是定义script的正则表达式,一个是定义style的正则表达式,
String script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; //定义script的正则表达式 String style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; //定义style的正则表达式最后是文章使用的表达式图片,以作参考:
