in reply to Re: Re: Regex isn't performing like I think it should
in thread Regex isn't performing like I think it should
One solution to this is to use a while loop to take advantage of the progressive matching (every time the /g regex is eval'd you get the next values for $1 and $2) as jmarshall99 did. The other is to evaluate your regex in list context to rip out all the matches at once.
Or even using a hash (as long as your a tags don't repeat)...my $string = '<a href="page.cfm?objectid=11933900&method=full&siteid=5 +0144"> Costly false alarms </a> <a href="page.cfm?objectid=11933890&m +ethod=full&siteid=50144"> Mindless yobs terrorise OAPs </a> <a href=" +page.cfm?objectid=11933879&method=full&siteid=50144"> Road deaths </a +> <a href="page.cfm?objectid=11933842&method=full&siteid=50144"> Twis +ted porn pervert caged for life </a> <a href="page.cfm?objectid=11933 +800&method=full&siteid=50144"> Greenbelt homes plan appeal thrown out + </a>'; my @matches = $string =~ m!(<a[^>]*>)(.+?</a[^>]*>)!ig; print "$_\n" foreach @matches;
my %matches = $string =~ m!(<a[^>]*>)(.+?</a[^>]*>)!ig; foreach my $key (keys %matches) { print "$key\n"; print "$matches{$key}\n\n"; }
-Bird
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Re: Re: Regex isn't performing like I think it should
by Popcorn Dave (Abbot) on Jun 12, 2002 at 22:21 UTC |