如何使用perl检查字符串中是否存在特殊字符“+”

时间:2014-03-26 10:38:18

标签: regex perl

我正在使用if条件检查" +"存在于字符串中。如果它存在,它应该打印一些东西,否则如果" - "它存在,它应该打印其他东西:

if ($test_1 =~/^+/)
{
    print OUTFILE1 "Unsigned \n";
}
elsif($test_1 =~/^-/)
{
    print OUTFILE1 "Signed \n";
}

3 个答案:

答案 0 :(得分:4)

if ($test_1 =~/^+/)

应该是

if ($test_1 =~/^\+/)

+在正则表达式中有特殊含义,如果要将其作为普通字符匹配,则需要将其转义。

答案 1 :(得分:2)

+需要转义,您可能不需要启动锚点:

if ($test_1 =~ /\+/)
{
    print OUTFILE1 "Unsigned \n";
}
elsif ($test_1 =~ /-/)
{
    print OUTFILE1 "Signed \n";
}

答案 2 :(得分:-1)

您可以使用旨在确定角色位置的功能index()" +"或" - " 在您的情况下)或字符串中的子字符串。

这里有一个例子:

 ...
if (index($test_1, "+") == 0) { # check if + is in the 0-th position,
  print OUTFILE1 "Unsigned \n"; # that means the 1-st starting from left;
} elsif (index($test_1, "-") == 0) {
  print OUTFILE1 "Signed \n";
}
 ...