Is there a simple way to return regex matches as an array?
Here is how I am trying in 2.7.7:

val s = """6 1 2"""
val re = """(\d+)\s(\d+)\s(\d+)""".r
for (m <- re.findAllIn (s)) println (m) // prints "6 1 2"
re.findAllIn (s).toList.length // 3? No! It returns 1!

But I then tried:

s match {
  case re (m1, m2, m3) => println (m1)
}

And this works fine! m1 is 6, m2 is 1, etc.

Then I found something that added to my confusion:

val mit = re.findAllIn (s)
println (mit.toString)
println (mit.length)
println (mit.toString)

That prints:

non-empty iterator
1
empty iterator

The "length" call somehow modifies the state of the iterator. What is going on here?

Edit
Report