Perl LWP Найти ссылки на странице, которые содержат определенное слово

Я действительно застрял. Я использую LWP. Я хочу вставить конкретные ссылки из HTML-документа в массив. Но:

while ($edocument =~ m/href\s*=\s*"([^"\s]+)"/gi) {
#dostuff
}

Обработаем все ссылки. Я просто хочу ссылки, которые имеют слово "тест" в URL.

Я пробовал все виды комбинаций, как. (слишком много попыток перечислить)

  while ($edocument =~ m/href\s*=\s*"([^"\s*test*]+)"/gi) {

Я читал и читал, и мне действительно нужна подсказка для этой неловкой ситуации.

Может кто-нибудь помочь?

Кроме того, мне нужно только одно совпадение слова теста в $edocument также. Вроде как last Я думаю, в цикле.

Также пробовал вариации

@links = $edocument =~ m/<a[^>]+href\s*=\s*["']?([^"'> ]+)/ig;

Затем запустил @links через уникальный саб. Но все же просто нужны ссылки со словом "тест".

1 ответ

Решение

Как насчет следующего регулярного выражения:

while ($edocument =~ m/href\s*=\s*"([^"\s]+test[^"\s]+)"/gi) { #dostuff }

Это регулярное выражение сопоставляет только URL с проверкой подстроки в нем.

Другие вопросы по тегам