这样一串string, 我想取得<DEFAULT>...</DEFAULT>里面的
warehouse code, cust_code, vendor code 的values ,return 3个String.<CRIT><CONDITIONS> <!-- condiftions for ULHKG -->
<CONDITION op='LIKE'>
<FIELD l_name='warehouse_code' datatype='varchar' length='10'>%</FIELD></CONDITION>
<LOGICAL_OP>AND</LOGICAL_OP>
<CONDITIONS>
<CONDITION op='LIKE'>
<FIELD l_name='cust_code' datatype='varchar' length='10'>%</FIELD>
</CONDITION>
</CONDITIONS>
</CONDITIONS>
<DEFAULT>
<FIELD l_name='warehouse_code'>ULSIN</FIELD>
<FIELD l_name='cust_code'>SIN000153</FIELD>
<FIELD l_name='vendor_code'>000123</FIELD>
</DEFAULT>
</CRIT>
warehouse code, cust_code, vendor code 的values ,return 3个String.<CRIT><CONDITIONS> <!-- condiftions for ULHKG -->
<CONDITION op='LIKE'>
<FIELD l_name='warehouse_code' datatype='varchar' length='10'>%</FIELD></CONDITION>
<LOGICAL_OP>AND</LOGICAL_OP>
<CONDITIONS>
<CONDITION op='LIKE'>
<FIELD l_name='cust_code' datatype='varchar' length='10'>%</FIELD>
</CONDITION>
</CONDITIONS>
</CONDITIONS>
<DEFAULT>
<FIELD l_name='warehouse_code'>ULSIN</FIELD>
<FIELD l_name='cust_code'>SIN000153</FIELD>
<FIELD l_name='vendor_code'>000123</FIELD>
</DEFAULT>
</CRIT>
+ "<CONDITION op='LIKE'> "
+ "<FIELD l_name='warehouse_code' datatype='varchar' length='10'>% </FIELD> </CONDITION> "
+ "<LOGICAL_OP>AND </LOGICAL_OP> "
+ "<CONDITIONS> "
+ "<CONDITION op='LIKE'> "
+ "<FIELD l_name='cust_code' datatype='varchar' length='10'>% </FIELD> "
+ "</CONDITION> " + "</CONDITIONS> " + "</CONDITIONS> "
+ "<DEFAULT> "
+ "<FIELD l_name='warehouse_code'>ULSIN </FIELD> "
+ "<FIELD l_name='cust_code'>SIN000153 </FIELD> "
+ "<FIELD l_name='vendor_code'>000123 </FIELD> "
+ "</DEFAULT> " + "</CRIT> "; String pattern = "<DEFAULT>.+?</DEFAULT>";
Pattern patt = Pattern.compile(pattern, Pattern.MULTILINE); Matcher matcher = patt.matcher(str);
Matcher temp_Matcher = null;
Map map = new HashMap(); while (matcher.find()) { pattern = "(l_name=\\'([^\\']+)\\'>([^<>]+)</FIELD>)"; patt = Pattern.compile(pattern, Pattern.MULTILINE);
temp_Matcher = patt.matcher(matcher.group(0)); while (temp_Matcher.find()) {
map.put(temp_Matcher.group(2), temp_Matcher.group(3).trim());
}
}
System.out.println(map);帮你写了个大概的 自己再根据需求微调下 应该 就差不多了