如何使用特定类型的HTML标记拆分字符串?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (47)

目前,我正在使用一个VaadinRichTextArea,它以HTML显示其输出。但是,由于我的很多输出都是XML格式的,所以标记被转换为实体。也就是说,<someTag>&ltsomeTag&gt。现在,假设我有以下字符串:

&ltsomeTag&gtVALUE&lt/someTag&gt

如何拆分此字符串,以便得到的字符串数组仅由值组成?我试过以下几点:

&lt[^(&gt)]*&gt

&lt[.&&[^(&gt)]]*&gt

但这两个都给了我完整的字符串。我也尝试过逃离所有的符号,除了&&在第二种情况下,因为我需要将其解析为一个和。然而,一切都没有改变。我的逻辑哪里出错了?

提问于
用户回答回答于

你可以使用“替换所有”方法取出标记,但需要确保regex使用非贪婪的标记来匹配第一个结束括号。

    String input = "&ltsomeTag&gtVALUE&lt/someTag&gt";
    String output = input.replaceAll("&lt.*?&gt", "");      
    System.out.println(output);

输出

VALUE

扫码关注云+社区

领取腾讯云代金券