java - 提取标签之间的内容

标签 java regex

我需要用空格替换 XML 格式字符串中的所有标签。例如,替换后,<student x = 100>Nick Miles</student>将变成 Nick Miles Nick Miles 周围有两个空格.

我已经尝试过str.replaceAll("<ref.*?>", " ")str.replaceAll(</ref>, " ") .

它适用于大多数情况。但是,如果没有>关注ref ,文本中的内容将被删除。我知道是关于贪婪的限定符,但我只是无法修复它。有人可以提出一个可能的解决方案吗?

最佳答案

为什么要使用贪婪量词?您想要的恰恰相反:一旦遇到第一个 >,正则表达式就停止匹配 .*。这就是惰性量词的用途。只需将 + 替换为 ? 即可。

关于java - 提取标签之间的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40433518/

相关文章:

python - 如何将两个非常大的字符串压缩在一起并返回匹配和不匹配的索引?

java - JPopupMenu 去除背景和边框

java - 在Android中如何在对话框中设置图像?

regex - 如何在 Apache Nifi Process Property 中使用表达式语言获取所有值

regex - 在 PostgreSQL 中使用子字符串获取 JSON 值

javascript - 匹配以 : character, 开头但不以\开头的字符串:

java - 使用 Swing Timer 延迟任务

java - 不要在 uni-test 中启动 spring 上下文

java - JNI 缓存的 jclass 全局引用变量被垃圾收集?

python - Python 是否在 re 模块中使用 NFA 进行正则表达式评估?