Perl LWP在页面中查找包含特定单词的链接

时间:2014-07-17 16:12:59

标签: match lwp

我真的被卡住了。 我正在使用LWP。 我希望将HTML文档中的特定链接推送到数组中。 但是:

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

将处理所有链接。 我只想要那些带有' test'在网址中。

我尝试过各种各样的组合。 (列出太多的尝试)

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

我一直在阅读和阅读,我真的需要一个线索来解决这个令人尴尬的局面。

有人可以帮忙吗?

此外,我每个$edocument只需要一个匹配单词test。有点像last我想在一个循环中。

还试过

的变种

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

然后通过一个独特的sub运行@links。但是,只需要与“测试”这个词联系起来。

1 个答案:

答案 0 :(得分:1)

以下正则表达式如何:

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

此regexp仅匹配带有子字符串test的url。