我正在尝试使用Perl在字符串中找到一个字符串。例如:
str = "Hi sir, No data was received"
strtofind = "No data was received"
我正在使用:
if(index($str,$strtofind) != -1)
但是如果脚本收到另一个输入,例如:"Hi sir, No data sent"
,它也会匹配(No data
)。
如果只匹配所有strtofind
?
答案 0 :(得分:2)
您提供的代码以这种方式行事
DB<4> $str="Hi sir, No data was received"
DB<5> $strtofind="No data was received"
DB<6> $str2="Hi sir, no data sent"
DB<7> print index($str,$strtofind)
8
DB<8> print index($str2,$strtofind)
-1
根据您的要求正确。如果您遇到问题,则不会与匹配相关,而是在其他地方
答案 1 :(得分:0)
您可以使用\Q
和\E
运算符执行此操作:
my $str = "Hi sir, No data was received";
my $strtofind = "No data was received";
if ($str =~ /\Q$strtofind\E/)
{
print "Match\n";
}