只查找准确的字符串
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";
}
我正在尝试使用 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";
}