package com.test.regex; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author ygr * @description 正则表达式练习 * @date 2021/10/29 */ public class NormalRole { public static void main(String[] args) { //设置模板 String str = "Hello, ${name}! You are learning ${lang}!"; //设置参数 Map<String, String> hashMap = new HashMap<String, String>() { { put("name", "Bob"); put("lang", "java"); } }; String engine = engine(hashMap, str); System.out.println(engine); } /** * 模板引擎 * @params map * @params engineStr * @return java.lang.String */ public static String engine(Map<String, String> map, String engineStr) { String regex = "\\$\\{(\\w+)\\}"; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(engineStr); while (matcher.find()) { for (String key : map.keySet()) { //map中的key与模板中的占位符相同时,替换key的value if (key.equals(matcher.group(1))) { engineStr = engineStr.replaceFirst(regex, map.get(key)); //replaceFirst(),替换匹配到打第一个选项 } } } return engineStr; } }
Sign in to make a reply
云外方天