• 正则查找符合条件的数据


    效果如图:

     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"/>
    " +
                "<row PTID="80268176" ZYH="2002868" XM="刘云2" YZLB="0" YSXM="王丽" ZYCH="11B41" CZLX="TY" CXSJ="2019-12-12 13:51:17"/>
    " +
                "<row PTID="80268176" ZYH="2002868" XM="赵云1" YZLB="0" YSXM="王丽" ZYCH="11B42" CZLX="TY" CXSJ="2019-12-12 13:51:17"/>
    " +
                "<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 =>
    " + str + "
    ");
        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) + "	";
                }
                //将上面瓶贴ID抽成方法
                result += "姓名:" + getFieldValue(rowStr, "XM");
                result += "床号:" + getFieldValue(rowStr, "ZYCH");
                if (rowStr.contains("CZLX="QR"")) {
                    result += "状态:取药 	";
                }
                if (rowStr.contains("CZLX="CX"")) {
                    result += "状态:撤销 	";
                }
                if (rowStr.contains("CZLX="TY"")) {
                    result += "状态:退药 	";
                }
                if (rowStr.contains("CZLX="CXTY"")) {
                    result += "状态:撤销退药 	";
                }
                result += "	" + getFieldValue(rowStr, "CXSJ");
            }
            result += "
    ";
        }
        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) + "		";
        }
        return result;
    }
  • 相关阅读:
    旋转坐标转换的矩阵推导
    Union的妙用和注意
    OpenGL环境搭建Windows+Mac+Linux
    RichLabel基于Cocos2dx+Lua v3.x
    Cocos2dx+lua中Color参数的坑
    常见开源协议
    lua序列化(支持循环引用)
    lua标签解析器
    Markdown基本语法
    python3爬取墨迹天气并发送给微信好友,附源码
  • 原文地址:https://www.cnblogs.com/vipsoft/p/12483141.html
Copyright © 2020-2023  润新知