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);
    }
mvel 配合正则表达式实现文本替换的更多相关文章
- 字符串replace的理解和练习和配合正则表达式的使用
		
下面代码展示了(demo地址 https://codepen.io/peach_/pen/jONJjRY): 1.字符串replace的理解和练习和配合正则表达式的使用, 2.正则表达式学习 3.通过 ...
 - JavaScript中String对象的match()、replace() 配合正则表达式使用
		
正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时, ...
 - notepad配合正则表达式处理文本
		
<option value="irs01.com">irs01.com</option><option value="hdslb.com&q ...
 - Jmeter之ForEach控制器(配合正则表达式使用)
		
在使用正则表达式提取响应信息时,存在部分信息有多个值,为了能使用所有的值,可以结合ForEach控制器使用. 一.界面显示 二.配置说明 1.名称:标识 2.注释:备注 3.输入变量前缀:是指需要提取 ...
 - JSTL配合正则表达式在JSP中的应用
		
<%@ page language="java" import="java.util.*,cn.com.Person" pageEncoding=&quo ...
 - sed笔记
		
sed是stream editor缩写,表示流编辑器,它是一款文本处理工具,可以配合正则表达式进行文本替换. 1.使用正则表达式匹配并进行文本中的字符串替换 *使用-i选项可以直接将替换结果应用到源文 ...
 - 利用python2.7正则表达式进行豆瓣电影Top250的网络数据采集及MySQL数据库操作
		
转载请注明出处 利用python2.7正则表达式进行豆瓣电影Top250的网络数据采集 1.任务 采集豆瓣电影名称.链接.评分.导演.演员.年份.国家.评论人数.简评等信息 将以上数据存入MySQL数 ...
 - 用python正则表达式提取字符串
		
在日常工作中经常遇见在文本中提取特定位置字符串的需求.python的正则性能好,很适合做这类字符串的提取,这里讲一下提取的技巧,正则表达式的基础知识就不说了,有兴趣的可以看re的教程. 提取一般分两种 ...
 - bash shell学习-正则表达式基础 (笔记)
		
A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子 ...
 
随机推荐
- NGK新加坡峰会:超级节点和开源代码为DeFi生态带来新曙光!
			
据伦敦金融时报以及纽约商业报等多家媒体报道的消息,1月31日,2021 NGK区块链峰会于新加坡正式开幕,全球多位区块链研究所专家线上受邀出席参会,NGK灵石技术研发Clifton先生,法国区块链专家 ...
 - 【目标检测】用Fast R-CNN训练自己的数据集超详细全过程
			
目录: 一.环境准备 二.训练步骤 三.测试过程 四.计算mAP 寒假在家下载了Fast R-CNN的源码进行学习,于是使用自己的数据集对这个算法进行实验,下面介绍训练的全过程. 一.环境准备 我这里 ...
 - OpenCVE-开源漏洞预警平台
			
0x01简介 主程序主要是通过使用NVD提供的JSON数据来更新CVE数据,并在前端进行展示.然后通过邮件进行通知,目前也只支持邮件.这个开源预警平台看上去并不是很完善,因为CVE本身就具有预警滞后性 ...
 - std::vector与std::list效能对比(基于c++11)
			
测试对象类型不同,数量级不同时,表现具有差异: 测试数据对象为std::function时: test: times(1000)vector push_back time 469 usvector e ...
 - 【快速掌握】Redis 的五种数据类型
			
不同于MySQL的表结构所带来的复杂语句,Redis只需要维护好它的[key-value]结构就可以,因此相比于MySQL,语句非常简单. 今天介绍一下Redis 五种常用的数据类型: 这五种数据类型 ...
 - 一次 MySQL 线上死锁分析实战
			
关键词:MySQL Index Merge 前言 MySQL 的锁机制相信大家在学习 MySQL 的时候都有简单的了解过,那既然有锁就必定绕不开死锁这个问题.其实 MySQL 在大部分场景下是不会存在 ...
 - 如何把数据放到C#的心里之 DB2实例
			
平时偶尔因为工作需要得自己写一些小工具去操作数据库,因为只是需要实现一些小的功能,也不涉及多类型的数据库,也许就是一次性的使用.所以此时那些大而全的数据库操作框架,也就不再那么适合我了.而本篇博文主要 ...
 - 2021-2-25:对于 Java MMAP,如何查看文件映射脏页,如何统计MMAP的内存大小?
			
我们写一个测试程序: public static void main(String[] args) throws Exception { RandomAccessFile randomAccessFi ...
 - 用友U8+V12.0安装教程(有需要软件和服务的可以联系我)
			
有需要用友U8+V12.0软件和服务的可以联系我 QQ:751824677 1.退出所有杀毒软件 2.先装服务器SQL2008 3.服务器(会计): 经典应用模式--全产品 (解压A盘-执行-Aut ...
 - Linux没有ens33解决方案
			
一.前言 运行环境:window10+VMware14+Centos7 博主最近遇到一个比较郁闷的问题,在虚拟机上操作Linux系统查看IP的时候,发现没有ens33或者eth0了,试了很多办法都没有 ...