在Java中提取两个单词之间的字符串

在Java中提取两个单词之间的字符串,java,Java,我有下面的字符串。我想使用Java提取两个单词和之间的字符串。我想根据我的要求提取字符串以形成有效的xml <cases><Final-Results><row> <CRDATTIM>2014-03-26-05.22.22.339840</CRDATTIM> <RECORDCD>C</RECORDCD> <CRNODE>01</CRNO

我有下面的字符串。我想使用Java提取两个单词和之间的字符串。我想根据我的要求提取字符串以形成有效的xml

<cases><Final-Results><row>
          <CRDATTIM>2014-03-26-05.22.22.339840</CRDATTIM>
          <RECORDCD>C</RECORDCD>
          <CRNODE>01</CRNODE>
          <CKEY>2014-03-26-05.22.22.339840C01</CKEY>
          <STATCD>CREATED</STATCD>
          <UNITCD>CSMHCQA</UNITCD>
          <WRKTYPE>CALL</WRKTYPE>
          <issues><row>
      <IKEY>2014-03-26-05.22.22.193840T01</IKEY>
      <PRTY>999</PRTY>
      <ISSUEID>20140326-155047-DT81694</ISSUEID>
      <SUBJECT>Group</SUBJECT>
      <ISSTYP>GROUP</ISSTYP>
      <ISSCAT1>GROUP INQUIRY</ISSCAT1>
     </row></issues></row></Final-Results></cases><?xml version="1.0" encoding="UTF-8"?>
     <response>
        <FOLDERID>COMM*H</FOLDERID>
     </response>
我已尝试使用以下代码。但这对我不起作用

Pattern pattern = Pattern.compile("<cases>(.*?)</cases>");
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
    System.out.println(matcher.group(1));
}
我在这里犯了什么错误吗?请分享你的想法来解决我的问题好吗? 提前感谢。

尝试更改:

Pattern pattern = Pattern.compile("<cases>(.*?)</cases>");
进入

顺便说一句,如果它是格式良好的xml文档,请使用解析器而不是正则表达式来处理它。

尝试更改:

Pattern pattern = Pattern.compile("<cases>(.*?)</cases>");
进入


顺便说一句,如果它是格式良好的xml文档,请使用解析器而不是正则表达式来处理它。

请不要使用模式匹配来解析xml。在几乎所有可以想象的语言中,都有处理xml的结构。用那些。这会让你的生活轻松很多,我同意。但是我的xml字符串不是一个格式良好的字符串。因此,我正在考虑使用模式匹配来提取内容。是的,但它看起来像一个有效的xml片段,也许可以给你一些想法。请不要使用模式匹配来解析xml。在几乎所有可以想象的语言中,都有处理xml的结构。用那些。这会让你的生活轻松很多,我同意。但是我的xml字符串不是一个格式良好的字符串。因此,我考虑使用模式匹配来提取内容。没错,但它看起来像一个有效的xml片段,也许可以给你一些想法。工作非常完美!谢谢你,肯特!工作得很好!谢谢你,肯特!