-2 perl
我想比较两个字符串,如果匹配则打印"是".当我打印字符串值相同时.但脚本打印"否"匹配.
Perl脚本:
foreach my $lines(@mylogFileLines)
{
if ($lines =~ m/^*.ERROR/i)
{
my @errorline = split ('/',$lines);
my @getline = split (' ',$errorline[4]);
my @vresp_id = $resp_id;
@mygetline = $getline[0];
foreach my $resp (@vresp_id)
{
print "$resp --- $getline[0]\n";
if ($resp =~ $getline[0])
{
$remarks = "Error";
print "yesss-\n";
}
else
{
print "no\n";
$remarks = "-";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
命令行输出:
dom_RESP_2018-03-02T14-26-29-029+10-00.xml --- dom_RESP_2018-03-02T14-26-29-029+10-00.xml
no
testing_RESP_2018-03-02T14-26-29-029+10-00.xml --- dom_RESP_2018-03-02T14-26-29-
029+10-00.xml
Run Code Online (Sandbox Code Playgroud)
cho*_*oba 12
使用eq运算符进行字符串相等.=~将右侧解释为正则表达式,其中+具有特殊含义,因此
'a+b' eq 'a+b' # true
'a+b' =~ /a+b/ # false, `+` is not matched
Run Code Online (Sandbox Code Playgroud)
要+在正则表达式中逐字解释,您需要逃避它:
'a+b' =~ /a\+b/ # true
Run Code Online (Sandbox Code Playgroud)
您可以使用quotemeta函数自动转义所有非单词字符.