Parseando valores ${campo}

opa…
pessoal… to fazendo uma linguagem de script pra interpretar o template da saída de um programa…

é o seguinte… incialmente to fazendo tudo na mao… acho que nao valerá a pena usar alguma API só pra fazer esse parse… pq vai ser usado numa classe só…

um arquivo de template seria mais ou menos assim:

to parseando isso no braço mesmo… usando indexOf(), subString() e replaceFirst()

talvez essa nao é a melhor maneira… mas pelo menos agora como testes, to fazendo assim mesmo…

o problema é quando tento fazer o replace de ${campo} por o valor correspondete no HashMap…
o erro acontece pq caracteres $,.{}; e outros são inválidos para esse tipo de operação…

alguem tem uma ideia de como eu posso fazer um replace disso?

abraços

Vc ta usando replaceAll?? Faz assim:

String str = "Olá ${campo}"; String campo = "mundo"; System.out.println( str.replaceAll( "\\u0024\\u007Bcampo\\u007D", campo ) );

a saida do código eh:

Olá mundo