Как получить доступ к счетчику replaceAllIn ()? - PullRequest
3 голосов
/ 26 сентября 2019

Я использую

val str2 = regex.replaceAllIn(str1, "other")

и мне нужно посчитать количество замен ... Есть способ получить значение внутреннего счетчика replaceAllIn?

PS: это обычно на других языках ( пример ), поэтому я предполагаю, что Scala предлагает аналогичные вещи.

Ответы [ 2 ]

6 голосов
/ 26 сентября 2019
scala> val r = "x".r
r: scala.util.matching.Regex = x

scala> var i = 0
i: Int = 0

scala> r.replaceAllIn("xooxxox", m => { i += 1 ; "X" })
res0: String = XooXXoX

scala> i
res1: Int = 4

сделает appendReplacement под капотом.

2 голосов
/ 26 сентября 2019

Делает еще один шаг, но вы можете findAllIn и сосчитать найденное число.Тогда сделай replaceAllIn.

scala> "foo".r.findAllIn("barbazfoobazfoo").size
res7: Int = 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...