JAVA Regex删除html标签和内容

时间:2013-01-02 15:00:16

标签: java html regex

  

可能重复:
  How to remove HTML tag in Java
  RegEx match open tags except XHTML self-contained tags

我想删除包含其内容的特定HTML标记。

例如,如果html是:

<span style='font-family:Verdana;mso-bidi-font-family:
"Times New Roman";display:none;mso-hide:all'>contents</span>

如果标签包含“mso- *”,则必须删除整个标签(打开,关闭和内容)。

1 个答案:

答案 0 :(得分:1)

正如Dave Newton在他的评论中指出的那样,html解析器就是这里的方法。如果你真的想要这么做,那么这是一个有效的正则表达式:

    String html = "FOO<span style='font-family:Verdana;mso-bidi-font-family:"
        + "\"Times New Roman\";display:none;mso-hide:all'>contents</span>BAR";
    // regex matches every opening tag that contains 'mso-' in an attribute name
    // or value, the contents and the corresponding closing tag
    String regex = "<(\\S+)[^>]+?mso-[^>]*>.*?</\\1>";
    String replacement = "";
    System.out.println(html.replaceAll(regex, replacement)); // prints FOOBAR