只找到确切的字符串

时间:2015-05-26 11:49:00

标签: string perl indexing

我正在尝试使用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

,如何设置为TRUE

2 个答案:

答案 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";
}