现在很多开发者都会调用调用人家的接口,使用人家的模板,根据别人提供的参数,我们自动填充模板上的占位符。最近我在也占位符匹配问题,所以现在分享给大家它的具体实现过程。
比如我们有个模板如下:
你好:{{0}},你的信息将要泄露,请去{{1}}查看你的信息,保证你的新安全。
我们现在要做的是给别人一个接口,假如叫A(Map map);人家传过来的信息如下:
map = {
"0":"张三先生",
"1": "www.baidu.com"
}
这时我们是不是要根据map中的字段填充,我们这时就要使用正则表达式去截取我们想要去获取的部分了。下面是我上面例子的正则
[{{]{2}\\w*[{{}}]{2}
下面是我们用map中的字段去填充我们正则匹配的字符串,我直接上代码,不啰嗦。
Pattern pattern = Pattern.compile("[{{]{2}\\w*[{{}}]{2}");
Matcher str=pattern.matcher(usr);
while (str.find()) { usr=usr.replace(str.group(),map.get(str.group().replace("{{","").replace("}}","")));
}
System.out.println(usr);
代码逻辑很简单,这里就不说了。这时我们就实现了字符的替代问题。