我正在尝试解析 HTML 页面的某些部分,但我的正则表达式有问题。我的代码如下所示:
... Download page using wget and some other stuff ...
$PAGE_REGEXP = "\<div class="col bg_dark clear">";
#Array HTMLLines
@HTMLLines = split(/\n/, $Page);
foreach $ThisOne (@HTMLLines) {
if ( ($Team) = ($ThisOne =~ /$PAGE_REGEXP/) ) {
$T{TranslateTeams($Team)}++;
$LastTeam=TranslateTeams($Team);
};
};
这是 HTML 页面:
<div class="col bg_dark clear">
<div class="col_1 left">15:30</div>
<div class="col_3_archive left">Team A - Team B</div>
<div class="col_2_archive left">
1:4 (0:2)
</div>
<div class="col_5 left ">2.4 </div>
<div class="col_5 left ">3.6 </div>
<div class="col_5 left bold">2.9 </div>
<div class="col_8 left">
</div>
<div class="col clear">
<div class="col_1 left">15:30</div>
<div class="col_3_archive left">Team C - Team D</div>
<div class="col_2_archive left">
2:3 (1:1)
</div>
<div class="col_5 left ">2.7 </div>
<div class="col_5 left ">3.7 </div>
<div class="col_5 left bold">2.5 </div>
<div class="col_8 left">
</div>
我需要解析的信息是球队名称、结束和半场结果以及 col_5_left 中的数字:2.4、3.6 和 2.9(对于比赛 Team A - Team B)。
如果我启动我的脚本,Perl 会给我以下错误: Bareword found where operator expected at parser.pl line 11, near ""\
我不熟悉 Perl 中的所有现有模块,也许我正在尝试做一些使用正确的模块很容易实现的事情。谁能给我一些提示/提示如何解析这个 HTML 页面?
谢谢