【发布时间】:2014-03-26 05:48:17
【问题描述】:
我有正则表达式教练验证的以下正则表达式
(\d+)\.(\d+)\.(\d+) (\d+):(\d+):(\d+)
这与 dd.mm.yyyy hh:mm:ss 格式匹配,但在 Perl 中我没有收到任何内容
我的数组包含这两个条目
foo 24.03.2014 19:18:57 foobar foo bar
bar 24.03.2014 15:19:00 asdfasrwe jlkj
这是我的 Perl 程序
use Try::Tiny;
foreach(@array)
{
try {
my ($day, $month, $year,$hours, $minutes, $seconds) = ($_ =~ m/(\d+)\.(\d+)\.(\d+) (\d+):(\d+):(\d+)/);
my $time= "$hours:$minutes:$seconds";
my $date= "$day.$month.$year";
} catch {
warn "caught error: $_";
};
print "Time: $time, Date: $date\n";
}
输出是
Time: , Date:
Time: , Date:
与正则表达式教练一样,我的正则表达式已获得批准,并且没有显示异常。我没有看到我的错误。问题出在哪里?
【问题讨论】:
-
始终使用
use strict; use warnings;!!! -
那个
try块有点没用。它不包含任何可能die. -
使用严格;使用警告; > 现在我收到了更多信息,你的!