KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
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?
Tags (comma-separated)
Save Edits
Cancel