在字符串Scala中获取{}之间的子串

时间:2017-06-07 11:57:29

标签: regex string scala substring

我有一个字符串str=" {$a}/{$b}/{$c}/{$d}"

我想要一个返回{}之间的字符串列表的函数

因此,fun(str)输出应为List($a,$b,$c,$d)

我试过了  println("""\}.*\{""".r.split("{$a}/{$b}/{$c}/{$d}").toList)

但我只得到List( {$a,$d})

1 个答案:

答案 0 :(得分:1)

您可以尝试使用 Scala 正则表达式 群组捕获,例如:

"""\{(.*?)\}""".r.findAllIn("{$a}/{$b}/{$c}/{$d}").matchData.map(_.group(1)).toList

说明:

  1. ?:用于非贪婪捕获
  2. findAllIn:找到所有模式
  3. _.group(1) 捕获数据