如何过滤出不匹配的条目?

我有一个包含三个字符串的字符串列表

List("1234:ruleName", "123456789012:::&&","12345::rulename")

我的合法格式为“ accountid:rulename”,其他格式均为非法。 我需要的是string(“ 1234:ruleName”),在我的情况下其他人是非法的,我该如何过滤出不匹配的条目?之后,将它们转换为此案例类白名单

object RuleWhitelisting {
   case class ByName(name: String) extends RuleWhitelisting
 }

 case class Whitelist(accountId: String, ruleWhitelisting: RuleWhitelisting)

这是我目前正在做的事情,但是我认为如果我有非法数据,它将失败

 list.map(whitelist => whitelist.split(":") match {

      case Array(accountId, name) => Whitelist(accountId, ByName(name))

    })