我有字符串<strong>Foo</strong>
。我想从这个字符串中删除 HTML 标签,即使它的内容也是如此。在此示例中,表达式必须返回""
(空字符串)。我该怎么做?
问问题
89 次
2 回答
2
如果您尝试删除的 html 没有任何嵌套的 html 标签;这是一个简单的基于正则表达式的解决方案。为方便起见,您可以分配标签名称,tag
正则表达式会相应调整。
String tag = "strong";
String str = "This is <strong>Foo</strong>Bar.";
String regex = "<\\s*" + tag + "[^>]*>[^<]*</\\s*" + tag + "\\s*>";
System.out.println(str.replaceAll(regex, "")); // This is Bar.
正则表达式适用于任何额外的标签属性,例如<strong class="bold">
等,但如果更新并处理格式稍有错误的 html,例如不必要的空格或新行,则可能会中断。
于 2013-08-25T23:01:28.663 回答
0
由于您声称您没有嵌套标签,您可以尝试使用"<([^>]+)>.*?</\\1>
String data = "bar<strong>foo</strong>yyy<strong>zzz</strong>";
System.out.println(data.replaceAll("<([^>]+)>.*?</\\1>", ""));
输出
baryyy
于 2013-08-25T23:04:56.040 回答