package com.example.favoritecode;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Author ds
* @Date 2022-04-19
*/
public class RegexUtils {
private static Pattern templatePattern = Pattern.compile("\\<(\\w+)\\>");
public static String templateEngine(String template, Map<String, Object> params) {
StringBuffer sb = new StringBuffer();
Matcher matcher = templatePattern.matcher(template);
while (matcher.find()) {
String key = matcher.group(1);
Object value = params.get(key);
matcher.appendReplacement(sb, value != null ?
Matcher.quoteReplacement(value.toString()) : "");
}
matcher.appendTail(sb);
return sb.toString();
}
public static void main(String[] args){
Map<String, Object> params = new HashMap<String, Object>(8);
params.put("addr" , "北京");
params.put("linktel" , "17600000001");
String template = "尊敬的当事人,您好!您在“XXX”服务平台提交的申请已审查通过。审核意见:<审核意见>。请于<取日期><取时间>之后,携带您上传的所有材料的原件到我处完善公证程序、缴纳费用并领取XXX。我司地址为:<addr>。联系电话:<linktel>。";
String comments = RegexUtils.templateEngine(template, params);
System.out.println("comments : " + comments);
}
}
打印
comments : 尊敬的当事人,您好!您在“XXX”服务平台提交的申请已审查通过。审核意见:<审核意见>。请于<取日期><取时间>之后,携带您上传的所有材料的原件到我处完善公证程序、缴纳费用并领取XXX。我司地址为:北京。联系电话:17600000001。
网友评论