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);
}

  

mvel 配合正则表达式实现文本替换的更多相关文章

  1. 字符串replace的理解和练习和配合正则表达式的使用

    下面代码展示了(demo地址 https://codepen.io/peach_/pen/jONJjRY): 1.字符串replace的理解和练习和配合正则表达式的使用, 2.正则表达式学习 3.通过 ...

  2. JavaScript中String对象的match()、replace() 配合正则表达式使用

    正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时, ...

  3. notepad配合正则表达式处理文本

    <option value="irs01.com">irs01.com</option><option value="hdslb.com&q ...

  4. Jmeter之ForEach控制器(配合正则表达式使用)

    在使用正则表达式提取响应信息时,存在部分信息有多个值,为了能使用所有的值,可以结合ForEach控制器使用. 一.界面显示 二.配置说明 1.名称:标识 2.注释:备注 3.输入变量前缀:是指需要提取 ...

  5. JSTL配合正则表达式在JSP中的应用

    <%@ page language="java" import="java.util.*,cn.com.Person" pageEncoding=&quo ...

  6. sed笔记

    sed是stream editor缩写,表示流编辑器,它是一款文本处理工具,可以配合正则表达式进行文本替换. 1.使用正则表达式匹配并进行文本中的字符串替换 *使用-i选项可以直接将替换结果应用到源文 ...

  7. 利用python2.7正则表达式进行豆瓣电影Top250的网络数据采集及MySQL数据库操作

    转载请注明出处 利用python2.7正则表达式进行豆瓣电影Top250的网络数据采集 1.任务 采集豆瓣电影名称.链接.评分.导演.演员.年份.国家.评论人数.简评等信息 将以上数据存入MySQL数 ...

  8. 用python正则表达式提取字符串

    在日常工作中经常遇见在文本中提取特定位置字符串的需求.python的正则性能好,很适合做这类字符串的提取,这里讲一下提取的技巧,正则表达式的基础知识就不说了,有兴趣的可以看re的教程. 提取一般分两种 ...

  9. bash shell学习-正则表达式基础 (笔记)

    A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子 ...

随机推荐

  1. Linux & SIGUSER1

    Linux & SIGUSER1 https://stackoverflow.com/questions/10824886/how-to-signal-an-application-witho ...

  2. 「NGK每日快讯」12.3日NGK公链第30期官方快讯!

  3. TKMybatis

    TKMybatis与Mybatis-plus都是mybatis的扩展,有相同的地方,也有不同的地方. 1.导入坐标 <!--mybatis依赖--> <dependency> ...

  4. Go中的if-else判断

    目录 go中的if-else判断 一.语法 go中的if-else判断 一.语法 if 条件 { //符合上面条件的执行 } else if 条件{ //符合上面条件的执行 } else { // 不 ...

  5. deepin 340 USB转console线驱动安装及使用

    刚换DEEPIN系统, 有个路由器要做调整,的确是没windows友好,查了网上资料,归总一下. zhaodong@zhaodong-PC:sudo find / -name serial 进入 zh ...

  6. 肝了很久,冰河整理出这份4万字的SpringCloud与SpringCloudAlibaba学习笔记!!

    写在前面 不少小伙伴让我整理下有关SpringCloud和SpringCloudAlibaba的知识点,经过3天的收集和整理,冰河整理出这份4万字的SpringCloud与SpringCloudAli ...

  7. golang-Zap和Go Logger日志库

    目录 在Go语言项目中使用Zap日志库 介绍 默认的Go Logger日志库 实现Go Logger 设置Logger 使用Logger Logger的运行 Go Logger的优势和劣势 优势 劣势 ...

  8. AI换脸

    AI换脸 技术 调用到百度的AI接口,layui的图片上传,栅格化布局 核心代码 纯py文件运行 # encoding:utf-8 import requests import base64 impo ...

  9. WPF 基础 - Trigger

    1. Trigger 1.1 由属性值触发的 Trigger 最基本的触发器,Property 是关注的属性名称,value 是触发条件,一旦触发条件满足,就会应用 Trigger 的 Setters ...

  10. ajax轮询原理及其实现方式

    ajax轮询原理及其实现方式 ajax轮询的两种方式 方式1:设定一个定时器,无论有无结果返回,时间一到就会继续发起请求,这种轮询耗费资源,也不一定能得到想要的数据,这样的轮询是不推荐的. 方式2: ...