Использование регулярных выражений для извлечения URL-адресов из простого текста с помощью Perl

Как я могу использовать регулярные выражения Perl для извлечения всех URL-адресов определенного домена (возможно с переменными поддоменами) с определенным расширением из простого текста? Я пытался:

<code>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";
}
</code>

Это ужасно терпит неудачу и дает мне:

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

Я думал, что этого не произойдет, потому что я использую.*?, который должен быть не жадным и дать мне наименьшее совпадение. Может кто-нибудь сказать мне, что я делаю не так? (Я не хочу, чтобы какое-то сверхсложное, регулярное выражение проверяло URL; я хочу знать, что я делаю неправильно, чтобы я мог извлечь из этого уроки.)

Ответы на вопрос(7)

Ваш ответ на вопрос