Perl正则表达式不起作用

时间:2015-04-03 01:27:17

标签: regex perl

你能告诉我为什么这样:

($revID, $who, $date, $nlines) =~ m/(\w+) \| (\w+) \| ([0-9-]*) .*\| ([0-9]*) line/;

不匹配:

r36043 | cmiuch | 2014-10-01 10:51:01 - 0400(2014年10月1日星期三)| 1行

revID,谁,约会都是空的。

1 个答案:

答案 0 :(得分:1)

您需要对存储实际输入的变量应用正则表达式。即,$var =~ m//;

my $var = "r36043 | cmiuch | 2014-10-01 10:51:01 -0400 (Wed, 01 Oct 2014) | 1 line";
my ($revID, $who, $date, $nlines) = $var =~ m/(\w+) \| (\w+) \| ([0-9-]+) .*\| ([0-9]+) line/;
print $revID."\n".$who."\n".$date."\n".$nlines."\n";

<强>输出:

r36043
cmiuch
2014-10-01
1