只查找准确的字符串

Find only exact string

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

您提供的代码以这种方式运行

  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

根据您的要求,正确。如果你有问题,那不是匹配问题,而是其他地方

您可以使用 \Q\E 运算符来执行此操作:

my $str = "Hi sir, No data was received";
my $strtofind = "No data was received";
if ($str =~ /\Q$strtofind\E/)
{
    print "Match\n";
}