Java 正则表达式去除 XML 标签,但不去除标签内容

标签 java xml regex string

我有以下 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("<.*?></.*?>|<.*?/>", "");

那根本行不通。有任何想法吗?提前致谢!

最佳答案

"How now <fizz>brown</fizz> cow.".replaceAll("<[^>]+>", "")

关于Java 正则表达式去除 XML 标签,但不去除标签内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15769028/

相关文章:

java - 如何在创建索引请求中创建索引类型和id?

javascript - Web 表单页面内的 ASP.NET 4 表单

java - 使用正则表达式将一些数字分别分组

c# - 仅对具有最小长度的数字进行 RegEx 验证

java - 如何用正则表达式提取源IP地址和信息?

java - 如何在我的 Jersey REST Web 服务中使用 google OAuth2

java - 我可以将 String 映射到 java 中的方法吗?

java - String 元素的 JdbcTemplate IN 子句

php - SimpleXml 如何正确设置编码和 xmls?

java - "Binary XML file line #8: You must supply a layout_width attribute"虽然属性已经存在