Вот подход соответствия шаблону регулярных выражений
def multipleDotsToDouble(s: String): Option[Double] = {
val Pattern = """(\d*)(\.*)(\d*)""".r
s match {
case Pattern(h,_,t) => s"$h.$t".toDoubleOption
case _ => None
}
}
multipleDotsToDouble(".......2")
, который выводит
res6: Option[Double] = Some(0.2)