in reply to Re: regex for multiple capture within boundary
in thread regex for multiple capture within boundary
I think I understand what is going on in the first of your updated solutions but if I change it to read
my @nums = ($x =~ /\s(\S+)/) =~ /(\d+)/g;
expecting output of
it doesn't work unless I also make the first match global like this
my @nums = ($x =~ /\s(\S+)/g) =~ /(\d+)/g;
I think this is because the round brackets around the match put the match into list context and the  subscript grabs the first elements of the match; however, since the match is non-global there will only ever be one element in the list and trying to get more will not work. If we want a second or subsequent element we must make the match global to capture more than one element.
Have I understood this correctly or am I completely missing the point?
|Replies are listed 'Best First'.|
Re^3: regex for multiple capture within boundary
by ikegami (Patriarch) on Jul 17, 2006 at 01:28 UTC
In Section Seekers of Perl Wisdom