zoukankan      html  css  js  c++  java
  • mvel 配合正则表达式实现文本替换

    mvel 依赖

            <dependency>
                <groupId>org.mvel</groupId>
                <artifactId>mvel2</artifactId>
                <version>2.0</version>
            </dependency>

    使用

    public static String processTemplate(String template, Map<String, Object> params){
            StringBuffer sb = new StringBuffer();
            Matcher m = Pattern.compile("\$\{[\w,\.]+\}").matcher(template);
            while (m.find()) {
                String param = m.group();
                Object value = MVEL.eval(param.substring(2, param.length() - 1), params);
                m.appendReplacement(sb, value==null ? "" : value.toString());
            }
            m.appendTail(sb);
            return sb.toString();
        }
        public static void main(String[] args) {
            Map<String, Object> salesMap = new HashMap<>();
            salesMap.put("name", "ttttttttttttt");
            Map<String, Object> param = new HashMap<>();
            param.put("aaaaa",999999999);
            param.put("bbb",10000000000L);
            param.put("sales", salesMap);
            Map<String, Object> param2= new HashMap<>();
            param2.put("param", param);
            String s = StringUtil.processTemplate("sfdfdsfsdfsd${param.sales.name}dfsfsd", param2);
            System.out.println(s);
        }
    

      

  • 相关阅读:
    字符串、组合练习
    national flag
    常用的Linux操作
    大数据概述
    LL(1)文法
    简单有穷自动机
    简单C语言文法
    词法分析
    编译原理 141
    综合练习
  • 原文地址:https://www.cnblogs.com/shianliang/p/14034226.html
Copyright © 2011-2022 走看看