2017-02-20 4 views
0

Следующий код используется для работы:Regex помощь подстрока

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.

Спасибо.

ответ

2

Заменить

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

с

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

Или заменить всю вещь со следующим:

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