WWW中的正则表达式:Perl中的机械化

时间:2012-06-28 17:40:21

标签: regex www-mechanize

我不确定WWW :: Mechanize中使用的url_regex的正确语法是什么。

我正在从一个以http://开头的网页收集所有链接,它们的格式如下:

http://google.com

而不是,

http://google.com/dir/
http://google.com/dir/dir2/

所以,我使用以下内容:

@links=$mech->find_all_links(url_regex=>qr/^http:\/\/.*?\//)

这仍然会捕获包含子路径的URL。

我在regexpal.com上测试了我的正则表达式并且效果很好。但由于某种原因,url_regex需要不同的语法。

感谢。

1 个答案:

答案 0 :(得分:1)

您应该使用:

@links=$mech->find_all_links(url_regex=>qr/^http:\/\/[^\/]*\/?$/) 

的内容如下:

字符串必须以^开始http://,后跟除斜杠[^\/]*以外的任意组合(甚至没有/空),后跟可选的斜杠\/? $