html生成日期表,如何从此HTML表格提取日期?

其他人已经指出,您希望/s选项使.匹配换行符,以便您可以将逻辑行边界与.*交叉。您可能还需要非贪婪.*?:

use v5.10;

my $html = <

Activation Date:

10/27/2011

HTML

my $regex = qr|

Activation \s+ Date:

\s*

\s*

(\S+)

\s*

|xs;

if ($html =~ $regex) {

say "matched: $1";

}

else {

say "mismatched!";

}

如果你有完整的表,它更容易使用的东西,它知道如何解析表。让一个模块,如还有HTML::TableParser处理所有的细节:

use v5.10;

my $html = <

Activation Date:

10/27/2011

HTML

use HTML::TableParser;

sub row {

my($tbl_id, $line_no, $data, $udata) = @_;

return unless $data->[0] eq 'Activation Date';

say "Date is $data->[1]";

}

# create parser object

my $p = HTML::TableParser->new(

{ id => 1, row => \&row, }

{ Decode => 1, Trim => 1, Chomp => 1, }

);

$p->parse($html);

use v5.10;

my $html = <

Activation Date:

10/27/2011

HTML

use HTML::TableExtract;

my $p = HTML::TableExtract->new;

$p->parse($html);

my $table_tree = $p->first_table_found;

my $date = $table_tree->cell(0, 1);

$date =~ s/\A\s+|\s+\z//g;

say "Date is $date";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值