У меня есть список строк, List ("098765432109: rule", "123456789012: *", "123456789012 &"),
Я хочу получить первые две строки в этом списке и отфильтровать третью one.
Когда я пытаюсь использовать list.collecnt, у меня есть Set (FeatureWhitelist (098765432109, All), FeatureWhitelist (123456789012, All)), кажется, что go не вошло во второе регулярное выражение,
когда я пытаюсь сопоставить список, я получаю "извлечение результата сопоставления из чего угодно, кроме последовательности символов или устаревшего совпадения", может кто-нибудь помочь мне с этим? Или используя другие методы
sealed trait RuleWhitelisting
object RuleWhitelisting {
case class ByName(name: String) extends RuleWhitelisting
case object All extends RuleWhitelisting
}
case class Whitelist(accountId: String, ruleWhitelisting: RuleWhitelisting)
lazy val pattrn = "([^:]*):([^:]*)".r
lazy val pattern1 = """(\d*):.*""".r
val res = list.collect {
case pattern1(accnt) => Whitelist(accnt, All)
case pattrn(accnt, rule) => Whitelist(accnt, ByName(rule))
}.toSet