str.scan(pattern) â array
str.scan(pattern) {|match, ...| block } â str
str.scan(pattern) {|match, ...| block } â str
Instance Public methods
Both forms iterate through str, matching the pattern (which may be
a Regexp or a String). For each match, a result
is generated and either added to the result array or passed to the block.
If the pattern contains no groups, each individual result consists of the
matched string, $&. If the pattern contains groups, each
individual result is itself an array containing one entry per group.
a = "cruel world" a.scan(/\w+/) #=> ["cruel", "world"] a.scan(/.../) #=> ["cru", "el ", "wor"] a.scan(/(...)/) #=> [["cru"], ["el "], ["wor"]] a.scan(/(..)(..)/) #=> [["cr", "ue"], ["l ", "wo"]]
And the block form:
a.scan(/\w+/) {|w| print "<<#{w}>> " }
print "\n"
a.scan(/(.)(.)/) {|x,y| print y, x }
print "\n"
produces:
<<cruel>> <<world>> rceu lowlr
Please login to continue.