我正在使用if
条件检查" +"存在于字符串中。如果它存在,它应该打印一些东西,否则如果" - "它存在,它应该打印其他东西:
if ($test_1 =~/^+/)
{
print OUTFILE1 "Unsigned \n";
}
elsif($test_1 =~/^-/)
{
print OUTFILE1 "Signed \n";
}
答案 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";
}
...