Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.ruby > #2437

Re: Match a pattern multiple times, returning matches, captures and offset?

From Brian Candler <b.candler@pobox.com>
Newsgroups comp.lang.ruby
Subject Re: Match a pattern multiple times, returning matches, captures and offset?
Date 2011-04-07 03:39 -0500
Organization Service de news de lacave.net
Message-ID <e9517b4095df9291249c3c221e9a35bc@ruby-forum.com> (permalink)
References <4D9B4FBD.9020602@fischer.name> <f56ffd49e8ba8202e431f9bb9d4620cd@ruby-forum.com>

Show all headers | View raw


7stud -- wrote in post #991338:
> You can also get relative beginning offsets like this:
>
> str = "_foo_ _bar_"
>
> str.scan(/_(\w+)_/) do |curr_match|
>   md = Regexp.last_match
>   whole_match = md[0]
>   captures = md.captures
>
>   captures.each do |capture|
>     p [whole_match, capture, whole_match.index(capture)]
>   end
>
> end

Using 'index' doesn't work if you have multiple captures which have the 
same pattern, or one is a substring of the other.

Use captures.begin and captures.end instead.

>> md = /(...)(...)/.match "foofoo"
=> #<MatchData "foofoo" 1:"foo" 2:"foo">
>> md.captures
=> ["foo", "foo"]
>> md.begin(1)
=> 0
>> md.begin(2)
=> 3

-- 
Posted via http://www.ruby-forum.com/.

Back to comp.lang.ruby | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Match a pattern multiple times, returning matches, captures and offset? Markus Fischer <markus@fischer.name> - 2011-04-05 12:22 -0500
  Re: Match a pattern multiple times, returning matches, captures and offset? Brian Candler <b.candler@pobox.com> - 2011-04-05 13:07 -0500
  Re: Match a pattern multiple times, returning matches, captures and offset? 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-05 20:37 -0500
    Re: Match a pattern multiple times, returning matches, captures and offset? Robert Klemme <shortcutter@googlemail.com> - 2011-04-06 04:42 -0500
  Re: Match a pattern multiple times, returning matches, captures and offset? 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-06 18:58 -0500
    Re: Match a pattern multiple times, returning matches, captures and offset? Robert Klemme <shortcutter@googlemail.com> - 2011-04-07 02:13 -0500
    Re: Match a pattern multiple times, returning matches, captures and offset? Brian Candler <b.candler@pobox.com> - 2011-04-07 03:39 -0500
      Re: Match a pattern multiple times, returning matches, captures and offset? 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-07 14:04 -0500
        Re: Match a pattern multiple times, returning matches, captures and offset? Brian Candler <b.candler@pobox.com> - 2011-04-08 02:19 -0500
          Re: Match a pattern multiple times, returning matches, captures and offset? 7stud -- <bbxx789_05ss@yahoo.com> - 2011-04-08 14:53 -0500

csiph-web