当前位置: 首页 > 知识库问答 >
问题:

使用JSoup仅删除HTML标记,而不删除“”标记中的数据

李建中
2023-03-14

我使用JSoup解析字符串,其中包含超文本标记语言标记为纯文本。例如:

String newStr = Jsoup.parse(testStrHTML).text();

它可以很好地解析它,但问题是我的Java字符串是否包含

我也尝试过正则表达式

String newStr = testStrHTML.replaceAll("\\<.*?\\>", "");

但问题依然存在。


共有1个答案

宇文智敏
2023-03-14

你的regexp

String newStr = testStrHTML.replaceAll("\\<.*?\\>", "");

完全删除标记。它匹配的开始

String newStr = testStrHTML.replaceAll("\\<.([^>]*)\\>", "\\1");

应使用标签和标签的任何属性替换所有标签。这与您的regexp大致匹配,但它用括号内的文本替换匹配。

请注意,这会删除上下文,因此可能不是一个好的解决方案。它也不会产生易于阅读的输出,因为有效的html被部分保留。

最好还是留在Jsoup中,在DOM中导航。

 类似资料:
  • 什么是正确的方法来删除只有HTML标签(保留所有自定义/未知的标签)与JSOUP(不是正则表达式)? 预期输入: 预期产出: 我尝试使用白名单清洁剂。none(),但它也会删除自定义标记。 我也尝试过: 但是它也删除了自定义标签。 这个答案对我不好,因为自定义标记的数量是无限的。

  • 问题内容: 我想删除标签之间的所有内容。输入示例可能是 输入: 输出将是: 基本上,我必须先删除整个区块 谢谢, 问题答案: 您最好对找到的 所有 元素进行迭代。所以你可以保证 a。)所有元素都被删除并且 b。)如果没有元素,那么什么也做不了。 例: 编辑: (除了我的评论) 当简单的 null /范围检查 在这里足够时,请不要使用异常处理: 代替:

  • 任何努力都将受到赞赏。

  • 我想删除一个本地图像标记(“存储库”/“标记”组合)。有可能吗? 我如何才能在仅与一个图像ID相关联的多个标记中删除任何一个标记而不删除其他标记?在我的情况下,我只想排除hiworld存储库。我可以删除图像,因此也可以删除与之相关联的所有标签,但这不是我想要做的。下面是输入命令docker images时显示的内容。 提前道谢。

  • 我有一个关于Spring 3.1.1 Hibernate 4.1.1 jsf 2.1.6的演示项目 和我的ApplicationContext.xml片段如下: 应该做些什么,以使创建的任何新域类、persistence.xml标记项都不是必需的,并且SQL表可以在DB中自动创建 因为我已经在applicationcontext.xml中添加了以下内容 ${hibernate.hbm2ddl.au

  • 问题内容: 这个问题已经在这里有了答案 : 从字符串中删除HTML标签 (31个答案) 4年前关闭。 是否存在可以完全删除HTML标签的正则表达式?顺便说一句,我正在使用Java。 问题答案: 您应该改用HTML解析器。我喜欢htmlCleaner,因为它为我提供了漂亮的HTML打印版本。 使用htmlCleaner,您可以执行以下操作: