Perl 初学者有一个关于正则表达式的问题。
下面的代码成功地从我的网站获取网页内容。然后,我检查与模式“搜索类型:[Dir or Geo]”的匹配。我刚刚写的那一点不是实际的正则表达式代码,而是显示我想要匹配的文本。
这是 get 方法实际捕获的内容的摘录(抱歉,还没有足够的声誉点来发布图像):
what: movers<br/>
where: toronto<br/>
search type:
Dir <br/>
在“搜索类型:”和“目录”之间有制表符和空格以及您在 Word 文档中看到的那个段落字符(就在“类型:”一词之后。
下面是我的代码。
use strict;
use warnings;
use WWW::Mechanize;
my $searchtype = "nothing yet";
my $mech = WWW::Mechanize->new();
my $webpage;
$mech->credentials('user','password' );
foreach my $keyword qw(movers) {
print "\$keyword = $keyword\n";
my $url = "http://myurl";
$mech->get($url);
$webpage = $mech->content();
if ($webpage =~ /search type.+([A-Z][a-z][a-z])/) {
$searchtype = $1;
print "$searchtype\n";
}
}
那么,为什么我的正则表达式 $webpage =~ /search type.+([AZ][az][az])/ 不能捕获匹配变量 $1 中的“Dir”?
使我抓狂。
路易