我想删除特定的 HTML 标记及其内容。
例如,如果 html 是:
<span style='font-family:Verdana;mso-bidi-font-family:
"Times New Roman";display:none;mso-hide:all'>contents</span>
如果标签包含“mso-*”,则必须删除整个标签(开始、结束和内容)。
我想删除特定的 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