gpt4 book ai didi

regex - 正则表达式没有从我的网站捕获文本

转载 作者:行者123 更新时间:2023-12-05 00:32:24 26 4
gpt4 key购买 nike

Perl 初学者,有一个关于正则表达式的问题。

下面的代码成功地从我的网站获取网页内容。
然后,我检查是否与模式“搜索类型:[Dir 或 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.+([A-Z][a-z][a-z])/在匹配变量 $1 中捕获“Dir”?

使我抓狂。

路易

最佳答案

/./匹配除换行符以外的任何字符,除非您使用 /./s .由于您想匹配换行符,您必须添加 /s .

/search type.+([A-Z][a-z][a-z])/s

但这会找到文档的最后三个字母。你其实想要
/search type:\s+([A-Z][a-z][a-z])/

关于regex - 正则表达式没有从我的网站捕获文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com