0
点赞
收藏
分享

微信扫一扫

java通过正则表达式获取特定内容

鱼板番茄 2022-01-08 阅读 49
/**
     * 获取sql语句中所有占位参数
     * @return
     */
    public static Map<String, Object> allArgsParamMap(String ...sqlStr){

        Map<String, Object> resultMap = new HashMap<>();

        Pattern p = Pattern.compile("\\{(.*?)\\}");
        for(String sql : sqlStr) {
            if(StringUtils.isNotEmpty(sql)){
                Matcher m = p.matcher(sql);
                while(m.find()) {
                    resultMap.put(m.group(1)+"",null);
                }
            }
        }

        return resultMap;
    }

m.group(1)代表排除匹配字符,为0的话代表包含匹配字符

    public static void main(String[] args) throws UnsupportedEncodingException {
        String sqlA ="select * from sys_user where id ={id} and name ={userName}";
        Map<String, Object> map = allArgsParamMap(sqlA);
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            System.out.println(entry.getKey()+"="+entry.getValue());
        }
    }

 

举报

相关推荐

0 条评论