通过特定种类的HTML标记分割字符串

时间:2018-08-06 20:00:42

标签: java regex

当前,我正在使用Vaadin RichTextArea,它以HTML显示其输出。但是,由于我的很多输出都是XML格式的,因此这些标记将转换为实体。也就是说,<someTag>变为&ltsomeTag&gt。现在,假设我有以下字符串:

&ltsomeTag&gtVALUE&lt/someTag&gt

我将如何拆分此字符串,以便生成的字符串数组仅包含VALUE?我尝试了以下方法:

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

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

但是这两个都给了我完整的String ...在第二种情况下,我还尝试转义了除&&以外的所有“&”号,因为我需要将其解析为AND。但是,什么都没有改变。我的逻辑哪里出问题了?

1 个答案:

答案 0 :(得分:0)

您可以使用replace all方法取出标签,但是需要确保正则表达式使用非贪心的匹配第一个右括号.*?

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

输出为

VALUE