-2
我要分析此字符串:"er1r2r3"
有:"""(e|w|n|s)(r[1-3])*""".r
斯卡拉字符串模式匹配的正則表達式的明星多findallin
val SideR = """(e|w|n|s)""".r
val PieceR = """(r)([1-3])""".r
def parseSidedPieces(str: String): (Char, List[Char]) = {
val side = str(0) match {
case SideR(s) => s
}
val pieces = parsePieces(str.tail)
(side, pieces)
}
def parsePieces(str: String): List[Char] = {
PieceR.findAllIn(str).toList map {
case PieceR(c, n) => n
}
}
但是,這將引發對空字符串""
因爲str(0)
。
只修正這個,正則表達式。
必須用'(E | W | N | S | R [1-3 ])而不是。 –