如何访问replaceAllIn()计数器?

Pet*_*uss 3 scala regexp-replace

我在用

val str2 = regex.replaceAllIn(str1, "other")
Run Code Online (Sandbox Code Playgroud)

并且需要计算替换次数...有一种方法可以检索内部replaceAllIn计数器的值?

PS:这在其他语言中很常见(例如),所以我假设Scala提供了类似的东西。

som*_*ytt 6

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
Run Code Online (Sandbox Code Playgroud)

will do appendReplacement under the hood.