On 2006-12-07 04:02:55 -0500, Robert Klemme <shortcutter / googlemail.com> said: > On 06.12.2006 22:44, Martin DeMello wrote: >> On 12/7/06, Max Muermann <ruby / muermann.org> wrote: >>> On 12/7/06, Ingo Weiss <ingoweiss / gmail.com> wrote: >>> > Hi, >>> > >>> > how can I get the NUMBER of matches for a regular expression in a given >>> > string? >>> > >>> > For example: for string 'Banana' and regex /a/ I should get '3' >>> > (matches) >>> > >>> >>> Here's one way (but there are probably better ones): >>> >>> "Banana".scan(/a/).size >>> => 3 >> >> This one skips the intermediate array construction in return for some >> clunkiness: >> >> i = 0 >> banana.scan(/a/) { i += 1} >> i > > >> require 'enumerator' > => true > >> "banana".to_enum(:scan, /a/).inject(0) {|s,| s+1} > => 3 > > :-) > > robert banana.split('').reject { |i| i if i != 'a' }.length I want extra points for using "banana.split". Best, James