如何通过正则表达式拆分列表

时间:2019-06-16 13:21:58

标签: scala

我有很多列表,我需要按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)

为此数组会更好,因为我正在转换文件中的所有行以获得这样的列表

1 个答案:

答案 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
 }