【发布时间】:2013-03-24 00:54:11
【问题描述】:
我有以下 Java 代码:
str = str.replaceAll("<.*?>.*?</.*?>|<.*?/>", "");
这会变成这样的字符串:
How now <fizz>brown</fizz> cow.
进入:
How now cow.
但是,我希望它只删除 <fizz> 和 </fizz> 标记,或者只是独立的 </fizz> 标记,并保留元素的内容。因此,一个正则表达式会将上述内容变为:
How now brown cow.
或者,使用更复杂的字符串,会变成这样:
How <buzz>now <fizz>brown</fizz><yoda/></buzz> cow.
进入:
How now brown cow.
我试过了:
str = str.replaceAll("<.*?></.*?>|<.*?/>", "");
这根本行不通。有任何想法吗?提前致谢!
【问题讨论】:
-
通常如果
xml和regex标签一起显示,你会得到一个评论,它说...... -
您是否尝试过使用 XML 解析器?我发现使用 JDOM 解析 XML 让我的生活更轻松。
-
如果不进入一个巨大的背景故事,我就无法详细介绍,但这在这里是不可能的(XML Parser)。只是在寻找正则表达式解决方案。
-
放一个'|'在第一个 > 和 <.> 之间
-
如果您真的想使用正则表达式,请不要在问题中提及任何 xml,而只需说“文本”,:D ...您可以尝试
replaceAll("<[^>]*>","")