Regex 如何在scala中拆分数字和字母?

Regex 如何在scala中拆分数字和字母?,regex,scala,Regex,Scala,Waht是一种惯用的方法,可以将可能包含任何数字和字母组合的字符串拆分为一组数字和字母,但要保持顺序) 例: 如何实现这一点是一种优雅的方式呢?Regex来拯救我们 val xs = List("X45C", "5K") val ys = xs map {x => """\d+|\D+""".r.findAllIn(x).toList} println(ys) /* List(List(X, 45, C), List(5, K)) */ 如果\D是正确的选择,取决于实际输入,请参阅

Waht是一种惯用的方法,可以将可能包含任何数字和字母组合的字符串拆分为一组数字和字母,但要保持顺序)

例:

如何实现这一点是一种优雅的方式呢?

Regex来拯救我们

val xs = List("X45C", "5K")
val ys = xs map {x => """\d+|\D+""".r.findAllIn(x).toList}

println(ys)
  /* List(List(X, 45, C), List(5, K)) */

如果
\D
是正确的选择,取决于实际输入,请参阅以获取更多信息。

类似的内容可能会有所帮助:

"x12y 1y2 QW23ER"
    .replace(/([a-z])([0-9])/gi,"$1-$2")
    .replace(/([0-9])([a-z])/gi,"$1-$2");

// OUTPUT: "x-12-y 1-y-2 QW-23-ER"
"x12y 1y2 QW23ER"
    .replace(/([a-z])([0-9])/gi,"$1-$2")
    .replace(/([0-9])([a-z])/gi,"$1-$2");

// OUTPUT: "x-12-y 1-y-2 QW-23-ER"