一个字符串"This is a Demo:${OutMyName}",输出来时,转换${OutMyName}为自己的名称,请问如何解析!

解决方案 »

  1.   

    public static void main(String[] args) {
            Pattern p = Pattern.compile("(?<=.*\\$\\{).*(?=})");        Matcher m = p.matcher("This is a Demo:${OutMyName}");        String newstring = m.replaceAll("aaa");\\aaa为自己的名字        System.out.println(newstring);
        }
      

  2.   

    Pattern p = Pattern.compile("(? <=.*\\$\\{).*(?=})"); 
    这里?与<好直接的空格需要除去
      

  3.   

    我的意思是${OutMyName}这个为一个自定义的参数,先获取有多少这样的${},然后根据名称如${OutMyName}名称为OutMyName,来获取值,然后替换最后输出This is a Demo:zhengjianbo,
      

  4.   

    我不了解正则,所以不大好说。如果你已经取出"OutMyName"了,就可以使用反射方式获取到变量OutMyName的值,然后替换
      

  5.   

    把 name-value 存到一个 Map 中,然后自己解析这个字符串,把 ${ } 中的名称取出来,作为 Map 的 name 把值放进去。
      

  6.   

    现在看到${OutMyName}这种形式,第一反应就是FreeMarker。
    条件反射了。
      

  7.   

    个人觉得你还是写个简单的词法分析器吧就是以前“编译原理”教材用中有例子的那个。。
    弄个stack 进行啥 荷兰算法  哈哈哈     玩笑玩笑
    这种东西apache common中应该都有包的专门用来分析EL的