如何访问 replaceAllIn() 计数器?

How to access the replaceAllIn() counter?

我正在使用

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

并且需要计算替换次数...有办法检索内部 replaceAllIn 计数器的值吗?

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

再走一步,但您可以 findAllIn 并计算找到的数目。然后做 replaceAllIn.

scala> "foo".r.findAllIn("barbazfoobazfoo").size
res7: Int = 2
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