2016-06-06 4 views
1

Ich habe diese Vorlage Formatierungscode in Scala von Better String formatting in ScalaString Ersatz Problem mit `replaceAllIn` Methode in Scala

def getTemplateString(template:String, replacement:Map[String, String]) = { 
    replacement.foldLeft(template)((s:String, x:(String,String)) => ("#\\{" + x._1 + "\\}").r.replaceAllIn(s, x._2)) 
    } 

Das Problem ist, dass mit einem zugeordneten Wert mit‚$‘Zeichen, ich Illegal group reference java.lang.IllegalArgumentException: Illegal group reference Fehler.

val template = "#{a}" 
val map = Map[String, String]("a" -> "$bp") 
val res = getTemplateString(template, map) 
println(res) 

Wie behebt man dieses Problem?

+0

http://stackoverflow.com/questions/9658701/scala-regex-replaceallin-cant-replace-when-replace-string-looks-like-a- Regex – prosseek

Antwort

1

Versuchen Sie das Symbol $ zu entkommen:

val map = Map[String, String]("a" -> "\\$bp")