我尝试使用正则表达式将字符串拆分为一些规则:
e.g。 AB1234 = AB和1234,C56789 = C5和6789,ZYX3939Y = ZYX和3939Y
我有这个正在使用的正则表达式,但它失去了它所分裂的角色:
val t = request.number.split("(?<=.{2})[0-9]{1}", 2)
println(t(0), t(1))
给予:
(AB,234)
(C5,789)
(EZY,9393Y)
正确的正则表达式是什么,有更简单的方法吗?
答案 0 :(得分:2)
最好在span
上使用splitAt
和String
方法。
val (twoFirst, rest) = request.number.splitAt(2)
val (noNumber, tail) = rest.span(!_.isDigit)
(twoFirst + noNumber, tail)
第一个val
在第二个字符后分割输入。
第二个val
在找到数字后立即拆分输入。
答案 1 :(得分:0)
您可以尝试以下正则表达式(.{2,}?)([\d].*)
第一部分匹配任意两个字符,但尝试匹配可能的最短序列(?
),然后下一部分首先查找一个数字(\d
),后跟任何字符。