关键字后括号中的特定perl正则表达式字符串

时间:2014-03-10 14:22:08

标签: regex perl

我需要帮助,请使用perl正则表达式; 我的日志行包含User='(string)@(realm)',我只需要在User=之后的第一个括号中的字符串

2 个答案:

答案 0 :(得分:1)

 ...
my $line = q[User='(string)@(realm)'];
$line =~ /User='\((\w+)\)@\((\w+)\)'/;
print $1; # will print string;
print $2; # will print realm;
 ...

答案 1 :(得分:0)

你必须转义括号,因为它们在正则表达式中具有特殊含义 - 它们会创建捕获组:

my $line = q{User='(string)@(realm)'};
my ($user, $realm) = $line =~ /User='\((.*)\)@\((.*)\)'/;
print "USER: $user.\nREALM: $realm.\n";