我需要帮助,请使用perl正则表达式;
我的日志行包含User='(string)@(realm)'
,我只需要在User=
之后的第一个括号中的字符串
答案 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";