所以我有String
:
val line = "Displaying elements 1 - 4 of 4 in total"
我想在这种情况下解析总金额:4
。
这就是我的尝试:
val line = "Displaying elements 1 - 4 of 4 in total"
val pattern = "\\d".r
println(pattern.findAllMatchIn(line))
答案 0 :(得分:2)
您可以使用
val line = "Displaying invoices 1 - 4 of 4 in total"
val pattern = """\d+(?=\s*in total)""".r
println(pattern.findFirstIn(line))
请参阅IDEONE demo。
\d+(?=\s*in total)
模式会找到一个或多个数字(\d+
),后跟0 +空格和in total
子字符串(请参阅正向前瞻(?=\s*in total)
)。< / p>
答案 1 :(得分:1)
您可以让greed吃掉该行,直到最后一个号码。
.*\b(\d+)
.*
贪婪地匹配任何数量的任何字符,直到\b
a word boundary (\d+)
capture一个或多个\d
位数group(1)
如果您需要小数,请添加lookbehind并修改为.*\b(?<![.,])(\d[\d.,]*)