赞
踩
正则表达式的使用,记录一下,以后用到了直接复制
要想通过{},并且根据{}中的字段名进行数据的匹配并替换,我们需要用到正则表达式,下面是代码的实现
- private static final Pattern PATTERN = Pattern.compile("\\{([^}]+)}");
-
-
- public String selectTemplateDetailByRule() {
-
- StringBuilder stringBuilder = new StringBuilder("1.{aa.1},2.{bb.1},3.{cc.1}");
- Map<String,String> map = new HashMap<>();
- map.put("aa.1","第一条数据");
- map.put("bb.1","第二条数据");
- map.put("cc.1","第三条数据");
- final Map<String,String> finalMap = map;
- //使用正则匹配出符合 {} 的数据
- Matcher matcher = PATTERN.matcher(stringBuilder);
- while (matcher.find()) {
- String match = matcher.group(1);
- String s1 = finalMap.get(match);
- stringBuilder.replace(matcher.start(), matcher.end(), s1);
- //因为我们替换会导致原来的字符串的长度和位置发生改变,第二次替换是位置就错误了,所以要借助下面这个保证填充后的数据正确
- matcher.reset(stringBuilder.toString());
- }
- String content = stringBuilder.toString();
- return content;
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。