1

我使用 Scalate 进行模板化。通常它是这样的:

  • 模板:

    Hello {{name}}

  • 参数:

    `地图(“名称”->“彼得”)

  • 结果:

    Hello Peter

有没有办法将Parameter Map 作为 Result

  • 模板:

    Hello {{name}}

  • 要求:

    Hello Peter

  • 结果:

    Map("name" -> "Peter")

4

1 回答 1

2

也许您正在寻找带有命名组的正则表达式?

//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))
于 2019-01-26T12:06:01.760 回答