Способ сопоставления с шаблоном, который вы извлекаете, является довольно трудоемким: поскольку шаблон должен соответствовать всей строке, вы должны добавить .*
на обоих концах регулярного выражения, и это вызывает большой возврат. Вы также добавили пробел, чтобы убедиться, что первый .*
не съел все цифры слева и возвращает все найденные 1+ цифры.
Если вы ищете первый матч, используйте findFirstIn
:
val myString: String = "there would be some number here 34."
val numberString = """\d+""".r.findFirstIn(myString)
val num = numberString.get.toInt
println(num) // => 34
См. Демоверсию Scala .