[英]Split regex in Scala keeping delimiter
我正在嘗試使用正則表達式使用一些規則拆分字符串:
例如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)
什么是正確的正則表達式,有沒有更簡單的方法?
您最好在String
上使用span
和splitAt
方法。
val (twoFirst, rest) = request.number.splitAt(2)
val (noNumber, tail) = rest.span(!_.isDigit)
(twoFirst + noNumber, tail)
第一個val
在第二個字符之后分割輸入。 第二個val
發現數字就分割輸入。
您可以嘗試以下正則表達式(.{2,}?)([\\d].*)
第一部分匹配任何兩個字符,但嘗試匹配可能的最短序列( ?
),然后下一部分首先尋找一個數字( \\d
),后跟任何字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.