我在Scala中有来自Better String formatting 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 ))
}
问题是,如果映射值为“$”字符,则会得到Illegal group reference java.lang.IllegalArgumentException: Illegal group reference
错误。
val template = "#{a}"
val map = Map[String, String]("a" -> "$bp")
val res = getTemplateString(template, map)
println(res)
如何解决这个问题?
发布于 2016-06-06 15:07:22
尝试转义$符号:
val map = Map[String, String]("a" -> "\\$bp")
https://stackoverflow.com/questions/37660713
复制相似问题