龙空技术网

JAVA正则替换已匹配的子串

万物生的好物 96

前言:

现时小伙伴们对“mysql 正则替换查询结果”大致比较关注,小伙伴们都需要知道一些“mysql 正则替换查询结果”的相关知识。那么小编同时在网上收集了一些关于“mysql 正则替换查询结果””的相关文章,希望大家能喜欢,朋友们快快来了解一下吧!

我经常需要进行动态替换字符串,如;

姓名${user}为的同学,考试总分为${score}

我们需要将${}里面的内容替换为我们动态传入的值

使用正则实现\:

public static void main(String[] args) {		Map<String, String> map = new HashMap<>();		map.put("user", "张无忌");		map.put("score", "98");		String str = "姓名${user}的同学,考试总分为${score}";		String patern = "\\$\\{(.+?)\\}";		Pattern p = Pattern.compile(patern);		Matcher ma = p.matcher(str);		StringBuffer buff = new StringBuffer();		while (ma.find()) {						String key = ma.group(1);			String val = map.get(key);			//将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个 StringBuffer 对象里			ma.appendReplacement(buff, val == null ? "" : val);		}		//将最后一次匹配工作后剩余的字符串添加到一个 StringBuffer 对象里		ma.appendTail(buff);		System.out.println(buff.toString());	}

运行结果:

姓名张无忌的同学,考试总分为98

标签: #mysql 正则替换查询结果