正则表达式帮助子串

时间:2017-02-20 18:36:36

标签: regex perl

以下代码用于工作:

 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。

感谢。

1 个答案:

答案 0 :(得分:2)

替换

$indexId =~ s/\Q$matchExpr//;

$indexId =~ s/^.*?\Q$matchExpr//;

或者用以下内容替换整个内容:

my ($indexId) = grep /User created at \(UserIndex\) UserId = (.*)/, <LOGFILE>;