val r = """^!!!(.*)""".r
val r(suffix) = "!!!rest of string"
Таким образом, suffix
будет заполнен остатком строки , или будет выдан scala.MatchError
.
Другой вариант будет:
val r = """^(!!!){0,1}(.*)""".r
val r(prefix,suffix) = ...
И prefix
будет либо соответствовать !!! или быть нулевым. например,
(prefix, suffix) match {
case(null, s) => "No prefix"
case _ => "Prefix"
}
Выше немного сложнее, чем вам может понадобиться, но стоит взглянуть на мощь интеграции Scala с регулярным выражением.