正则查找符合条件的数据
效果如图:
JAVA 代码
public static void main(String[] args) throws Exception { String str = "<row PTID=\"80268175\" ZYH=\"2002868\" XM=\"刘云1\" YZLB=\"0\" YSXM=\"王丽\" ZYCH=\"11B40\" CZLX=\"QR\" CXSJ=\"2019-12-12 13:51:17\"/>\n" + "<row PTID=\"80268176\" ZYH=\"2002868\" XM=\"刘云2\" YZLB=\"0\" YSXM=\"王丽\" ZYCH=\"11B41\" CZLX=\"TY\" CXSJ=\"2019-12-12 13:51:17\"/>\n" + "<row PTID=\"80268176\" ZYH=\"2002868\" XM=\"赵云1\" YZLB=\"0\" YSXM=\"王丽\" ZYCH=\"11B42\" CZLX=\"TY\" CXSJ=\"2019-12-12 13:51:17\"/>\n" + "<row PTID=\"80268176\" ZYH=\"2002868\" XM=\"刘云3\" YZLB=\"0\" YSXM=\"王丽\" ZYCH=\"11B43\" CZLX=\"QR\" CXSJ=\"2019-12-12 13:51:17\"/>"; System.out.println("XML =>\r\n" + str + "\r\n"); Search("11B40", str); Search("刘云", str); } /** * 打印查询结果 * @param keyWords * @param str */ private static void Search(String keyWords, String str) { System.out.println("查询关键字 => " + keyWords); Pattern pRow = Pattern.compile(".*" + keyWords + ".*"); Matcher mRow = pRow.matcher(str); String result = ""; while (mRow.find()) { String rowStr = mRow.group(0); if (StringUtil.isNotEmpty(rowStr)) { //方便阅读,瓶贴ID 的获取,不使用公用方法 Pattern pPTID = Pattern.compile(" PTID=\"(.+?)\""); Matcher mPTID = pPTID.matcher(rowStr); while (mPTID.find()) { result += "瓶贴ID:" + mPTID.group(1) + "\t"; } //将上面瓶贴ID抽成方法 result += "姓名:" + getFieldValue(rowStr, "XM"); result += "床号:" + getFieldValue(rowStr, "ZYCH"); if (rowStr.contains("CZLX=\"QR\"")) { result += "状态:取药 \t"; } if (rowStr.contains("CZLX=\"CX\"")) { result += "状态:撤销 \t"; } if (rowStr.contains("CZLX=\"TY\"")) { result += "状态:退药 \t"; } if (rowStr.contains("CZLX=\"CXTY\"")) { result += "状态:撤销退药 \t"; } result += "\t" + getFieldValue(rowStr, "CXSJ"); } result += "\r\n"; } System.out.println(result); } /** * 获取字段值 * @param rowStr * @param field * @return */ private static String getFieldValue(String rowStr, String field) { String result = ""; Pattern pXM = Pattern.compile(" " + field + "=\"(.+?)\""); Matcher mXM = pXM.matcher(rowStr); while (mXM.find()) { result += mXM.group(1) + "\t\t"; } return result; }
本文来自博客园,作者:VipSoft 转载请注明原文链接:https://www.cnblogs.com/vipsoft/p/12483141.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2013-03-12 去除Windows 2003的登录CTRL+ALT+DEL