JAVA正则表达式删除html标签和内容

标签 java html regex

Possible Duplicate:
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-*”,则必须删除整个标签(开头、结尾和内容)。

最佳答案

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

关于JAVA正则表达式删除html标签和内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14124207/

相关文章:

html - 如何从 Dreamweaver 的代码 View 跳转到 .css 文件中的 CSS 类/ID?

Javascript - 复选框的 Onchange 事件仅适用于 Firefox 和 Opera?

html - float 和自动高度

javascript - 替换输入中的坏词 单词多项选择

Javascript - 使用正则表达式获取两个字符之间的字符

java - 应用程序构造函数中的异常 - 无法启动类

java - ServiceReference 未获取所有类名以进行激活

java - 避免空检查

javascript - 在notepad++中使用正则表达式将整数添加到表项中的img src中

java - Spring Boot Web 应用程序加载由另一个应用程序创建的新网页