public class PatternTest {
public static void main(String[] args) {
String source = "名字${name},性别${sex},年龄${age}。";
String regex = "\\$\\{\\w+}";
Pattern pa = Pattern.compile(regex);
Matcher mat = pa.matcher(source);
StringBuffer sb = new StringBuffer();
while(mat.find()){
int i = mat.end();//返回由以前匹配操作所匹配串尾到父串头的长度
System.out.println(i);
System.out.println(mat.group());
mat.appendReplacement(sb, getItsValue(mat.group()));
}
mat.appendTail(sb);//添加尾巴
System.out.println(sb.toString());
}
private static String getItsValue(String key){
if("${name}".equals(key)){
return "zhangjing";
}else if("${sex}".equals(key)){
return "男";
}else if("${age}".equals(key)){
return "23";
}
return null;
}
}