In other languages, in RegExp you can use /.../g
for a global match.
However, in Ruby:
"hello hello".match /(hello)/
Only captures one hello.
How do I capture all hello
s?
In other languages, in RegExp you can use /.../g
for a global match.
However, in Ruby:
"hello hello".match /(hello)/
Only captures one hello.
How do I capture all hello
s?
You can use the scan method. The scan method will either give you an array of all the matches or, if you pass it a block, pass each match to the block.
"hello1 hello2".scan(/(hellod+)/) # => [["hello1"], ["hello2"]]
"hello1 hello2".scan(/(hellod+)/).each do|m|
puts m
end
I've written about this method, you can read about it here near the end of the article.