Scala正则表达式:获取最后一个字符串数

时间:2016-07-11 08:59:24

标签: regex scala

所以我有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))

2 个答案:

答案 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+)

See demo at regex101

如果您需要小数,请添加lookbehind并修改为.*\b(?<![.,])(\d[\d.,]*)