Mit regex zu extrahieren, URLs in reinen text mit Perl

Wie kann ich mit Perl regexps die Extraktion aller URLs einer bestimmten Domäne (mit evtl. variabler subdomains) mit einer bestimmten Erweiterung aus plain text? Ich habe versucht:

my $stuff = 'omg http://fail-o-tron.com/bleh omg omg omg omg omg http://homepage.com/woot.gif dfgdfg http://shomepage.com/woot.gif aaa';
while($stuff =~ m/(http\:\/\/.*?homepage.com\/.*?\.gif)/gmsi)
{
print $1."\n";
}

Scheitert es schrecklich und gibt mir:

http://fail-o-tron.com/bleh omg omg omg omg omg http://homepage.com/woot.gif
http://shomepage.com/woot.gif

Ich dachte, dass würde nicht passieren, denn ich bin mit .*?, sollte nicht gierig sein und geben mir die größte übereinstimmung. Kann mir jemand sagen was ich falsch mache? (Ich will nicht einige uber-Komplex, Konserven regexp validieren URLs; ich will wissen, was ich falsch mache, damit ich daraus lernen kann.)

InformationsquelleAutor test1234 | 2009-06-27

Schreibe einen Kommentar