-1

我有字符串<strong>Foo</strong>。我想从这个字符串中删除 HTML 标签,即使它的内容也是如此。在此示例中,表达式必须返回""(空字符串)。我该怎么做?

4

2 回答 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 回答