Scala模板:将字符串映射到模板
我使用Scalate作为模板。通常是这样的:Scala模板:将字符串映射到模板,scala,scalate,scala-template,Scala,Scalate,Scala Template,我使用Scalate作为模板。通常是这样的: 模板: Hello{{name} 参数: `地图(“名称”->“彼得”) 结果: 你好,彼得 是否有办法获得参数映射作为结果 模板: Hello{{name} 请求: 你好,彼得 结果: Map(“name”->“Peter”) 也许您正在寻找带有命名组的正则表达式 //Regex with named groups val pattern = """^Hello (?<firstname>\w+) (?<last
- 模板:
Hello{{name}
- 参数: `地图(“名称”->“彼得”)
- 结果:
你好,彼得
- 模板:
Hello{{name}
- 请求:
你好,彼得
- 结果:
Map(“name”->“Peter”)
//Regex with named groups
val pattern = """^Hello (?<firstname>\w+) (?<lastname>\w+)$""".r
val groups = List(
"firstname",
"lastname"
)
def matchAll(str: String): Option[Map[String, String]] = pattern
.findFirstMatchIn(str)
.map { matched =>
groups.map(name => name -> matched.group(name)).toMap
}
matchAll("Hello Joe Doe") //Some(Map(firstname -> Joe, lastname -> Doe))
//带有命名组的正则表达式
val pattern=“”^Hello(?\w+)(\w+)$”。r
val组=列表(
“名字”,
“姓氏”
)
def matchAll(str:String):选项[Map[String,String]]=pattern
.findFirstMatchIn(str)
.map{matched=>
groups.map(name=>name->matched.group(name)).toMap
}
matchAll(“你好,乔·多伊”)//一些(地图(firstname->Joe,lastname->Doe))
我不这么认为。我也不认为你的问题有唯一的解决办法。假设模板是Hello{{{name}}{{lasname}}
,您得到了Hello Abc Def Xyz
。你怎么知道姓名
的结尾和姓氏
的开头?我需要它作为URL。因此,我认为如果您仅将参数限制为一个path元素,这是可能的-但是如果您不定义一些不允许作为参数的字符,这是不可能的。谢谢,这看起来可能是一个好的开始。然而,当我尝试运行它时,它失败了:-我错过了什么好消息吗