本文主要是介绍java通过正则表达式获取特定内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*** 获取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());}}
这篇关于java通过正则表达式获取特定内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!