Самый простой способ сделать это - использовать следующее регулярное выражение.
/href="([^"]+)"/
Это будет получать все символы из первой цитаты, пока не найдет символ, который является цитатой. В большинстве языков это самый быстрый способ получить строку в кавычках, которая сама по себе не может содержать кавычек. Кавычки должны быть закодированы при использовании в атрибутах.
ОБНОВЛЕНИЕ : Полная программа Perl для анализа URL-адресов будет выглядеть следующим образом:
use 5.010;
while (<>) {
push @matches, m/href="([^"]+)"/gi;
push @matches, m/href='([^']+)'/gi;
push @matches, m/href=([^"'][^>\s]*)[>\s]+/gi;
say for @matches;
}
Он читает со стандартного ввода и печатает все URL. Он заботится о трех возможных цитатах. Используйте его с curl
, чтобы найти все URL на веб-странице:
curl url | perl urls.pl