我正在尝试匹配以下内容(下面是一个名为@abc的数组):
goo foo tool: 1.2.1 (a3 change: 234342 @ 2014/02/19 14:20:27)
带
my $match = "goo foo tool: (\d+)\.(\d+)\.(\d+) \(a3 change: \d+ @ #DATE# #TIME#\)";
在我的代码中,
78 foreach (@abc){
79 print "$_\n";
80 if ($_ =~ m/$match/){
81 print "$1\n";
82 } else {
83 print "not matched\n";
84 }
85 }
我不明白为什么打印“不匹配\ n”;
其他人都知道为什么?
答案 0 :(得分:3)
#DATE#和#TIME#字符串常量与您拥有的日期不匹配。只需调整到正则表达式即可实际匹配这些值:
my $match = "goo foo tool: (\d+)\.(\d+)\.(\d+) \(a3 change: \d+ \@ \d+/\d+/\d+ \d+:\d+:\d+\)";