首页 > 解决方案 > Java中多行文本代码中的正则表达式

问题描述

对于下面的 XML,我想找到 patientInfo 标记并使用 Java 找出 < 和 "patientInfo>" 之间的内容。我认为最好的方法是使用匹配器。所以我写了如下代码(假设上面的String在变量k中)。然后我会使用 m.group(0) 或 m.group(1)。我的想法是,一旦我这样做,我可以获得包含的信息。

    Pattern p = Pattern.compile("<.*:patientInfo>");
    Matcher m = p.matcher(k);
    System.out.println(m.matches()); 

但匹配是错误的。我想我的 RE 不太正确。有什么建议么?(所有敏感信息已被替换)

(more stuff above)
<ns3:insuredInfo>
  <ns3:insuredId>ID12345678</ns3:insuredId>
  <ns3:insuredSecondaryInd>N</ns3:insuredSecondaryInd>
  <ns3:firstName>GEORGE</ns3:firstName>
  <ns3:lastName>WASHINGTON</ns3:lastName>
  <ns3:gender>M</ns3:gender>
</ns3:insuredInfo>
<ns3:patientInfo>
      <ns3:firstName>CATHY</ns3:firstName>
      <ns3:middleInitial>N</ns3:middleInitial>
      <ns3:lastName>LASTLY</ns3:lastName>
      <ns3:gender>F</ns3:gender>
      <ns3:birthDate>08/13/2006</ns3:birthDate>
      <ns3:addressLine1>123 MAIN ST</ns3:addressLine1>
      <ns3:cityName>ANY TOWN</ns3:cityName>
      <ns3:stateName>NY</ns3:stateName>
      <ns3:zipCode>11418</ns3:zipCode>
      <ns3:patientAccountNumber>12345678xyz</ns3:patientAccountNumber>
 </ns3:patientInfo>
   (more stuff underneath)

标签: javaregex

解决方案


推荐阅读