java - 删除一些 HTML 标签但保留 Span 标签的正则表达式

标签 java html regex

是否有一个表达式可以获取两个 HTML 标签之间的值?另外,如果有 Span 标签,那么我需要保持原样

input
<table><tr>
<td>abc<td/> <span class="abc">Test</span>
</tr>
</table>

Output

abc <span class"abc"> Test</span>

我尝试了以下解决方案,但它也删除了标签

String input="<table><tr><td>abc<td/> <span>Test</span></tr></table>";
        String newValue = input.replaceAll("<[^>]*>", "");
        System.out.println(newValue);

以上代码的输出

abc Test

但输出需要

abc <span class"abc"> Test</span>

最佳答案

您可以使用否定先行 (?!...),这意味着 后面没有 来测试标记。 Java 语法示例:

<(?!/?span\\b)[^>]*>

关于java - 删除一些 HTML 标签但保留 Span 标签的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19683185/

相关文章:

java - 如何使用 String API 或任何正则表达式在 java 中使用正则表达式转义单引号和反斜杠

regex - 除了使用正则表达式之外,在 Swift 中解析 HTML

java - 如何处理多个 Route 的异常

java - 在不使用 if/else 语句的情况下将输出限制为某个整数的简单方法?

html - 如何在内容滚动时固定标题

javascript - jquery each() 不会遍历新添加的表行

html - Pinterest Rich Pin不起作用和验证器失败?

java - 多片段文件名的正则表达式模式

java - Visual Cobol 2010 和 eclipse

java - 二维数组对角填充