Я вытаскиваю некоторую разметку Википедии и хочу сопоставить URL-адреса в относительных (в Википедии) ссылках. Я не хочу сопоставлять URL-адреса, содержащие двоеточие (не считая двоеточия протокола), чтобы избежать специальных страниц и тому подобного, поэтому у меня есть следующий код:
while ($body =~ m|<a href="(?<url>/wiki/[^:"]+)|gis) {
my $url = $+{url};
print "$url\n";
}
к сожалению, этот код работает не совсем так, как ожидалось. Любой URL, содержащий круглые скобки [т.е. /wiki/Eon_(geology
)] преждевременно обрезается перед открытием, поэтому URL будет соответствовать /wiki/Eon_
. Я немного искал код и не могу понять, что я делаю не так. Кто-нибудь может дать некоторое представление?