我有很多列表,我需要按3char序列的最后一次出现进行拆分。 EX(AE3,SH7,SH8)。我将如何拆分以使其后面的所有字符成为一个单独的列表?
我已经尝试过使用SplitAt,但是它似乎不能正常使用正则表达式。 LastIndexOf也返回-1
val pattern = "[a-zA-Z]{2}\\d{1}".r //This is my Regex
这是我正在处理的列表的一个示例 我需要EY1之后的所有字符。
List(}CLOSE-BRACE, , K, L, OW1, Z, B, R, EY1, S)
List(}RIGHT-BRACE, , R, AY1, T, B, R, EY1, S)
我希望它输出(EY1,S)
为此数组会更好,因为我正在转换文件中的所有行以获得这样的列表
答案 0 :(得分:0)
我认为类似的东西应该起作用...
list.foldLeft(false -> Nil) {
case (_, elem) if elem.matches("[A-z]{2}\\d.") => true -> elem :: Nil
case ((false, _), _) => false -> Nil
case ((true, result), elem) => elem :: result
} match {
case (true, result) => result.reverse
case _ => Nil
}