以下代码用于工作:
my $matchExpr = "User created at \(UserIndex\) UserId = ";
my @indexLine = grep /\Q$machExpr/, <LOGFILE>;
...
my $indexId = $indexLine[0];
$indexId =~ s/\Q$matchExpr//;
chomp $indexId;
使用包含以下行的LOGFILE:
"User created at UserIndex UserId = "
但是,LOGFILE格式改为:
"2017-01-01 08:50:22 User created at UserIndex UserId ="
并且代码不再有效了。寻找快速修复,因为这里没有人知道Perl。
感谢。
答案 0 :(得分:2)
替换
$indexId =~ s/\Q$matchExpr//;
与
$indexId =~ s/^.*?\Q$matchExpr//;
或者用以下内容替换整个内容:
my ($indexId) = grep /User created at \(UserIndex\) UserId = (.*)/, <LOGFILE>;