Perl初心者で正規表現について質問です。
以下のコードは、私の Web サイトから Web ページのコンテンツを正常に取得します。次に、「検索タイプ: [Dir or Geo]」というパターンに一致するかどうかを確認します。私が書いたそのビットは、実際の正規表現コードではなく、一致させたいものを示すテキストです。
get メソッドが実際にキャプチャするものの抜粋を次に示します (申し訳ありませんが、画像を投稿するのにまだ十分な評価ポイントがありません)。
what: movers<br/>
where: toronto<br/>
search type:
Dir <br/>
"search type:" と "Dir" の間には、タブとスペース、および Word ドキュメントで見られる段落文字 ("type:" という単語の直後) があります。
以下は私のコードです。
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」をキャプチャしないのでしょうか?
私を狂わせる。
ルイ