2013-08-25 34 views
-1

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

+0

你的意思是'null',或者你的意思是一个空字符串'“” '? – jlordo

+0

可能会被复制http://stackoverflow.com/questions/1265282/recommended-method-for-escaping-html-in-java –

+0

我的意思是空的。 – Tony

回答

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格式的像不必要的空格或新线在这里和那里。

0

既然你声称你没有嵌套的标签,你可以尝试使用"<([^>]+)>.*?</\\1>

String data = "bar<strong>foo</strong>yyy<strong>zzz</strong>"; 
System.out.println(data.replaceAll("<([^>]+)>.*?</\\1>", "")); 

ouptut

baryyy 
+0

@downvoter谨慎地解释你的行为? – Pshemo

相关问题