in reply to Re: Multiple matches of a regex
in thread Multiple matches of a regex
This prints:use strict; my $regex = qr/(\d\d):(\d\d)(?::(\d\d))?/; # 01234567890123456 my $string = "11:30 or 11:29:53"; my $res; while ($string =~ /$regex/g) { my $pos = $-[0]; my ($ind, @match); for $ind (1..$#-) { push @match, substr ($string, $-[$ind], $+[$ind] - $-[$ind]); } $res->{$pos} = \@match; } use Data::Dumper; print Data::Dumper::Dumper $res;
as it should.$VAR1 = { '0' => [ '11', '30' ], '9' => [ '11', '29', '53' ] };
What I don't like about this solution is that it involves a lot of substr calls to get strings that are stored in the $n variables anyway. Is there a better way to do this?
Thanks,
pike
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: Multiple matches of a regex
by BrowserUk (Patriarch) on Jan 10, 2003 at 19:09 UTC | |
|
Re: Re: Re: Multiple matches of a regex
by ihb (Deacon) on Jan 10, 2003 at 19:09 UTC |