perl string在另一个字符串中完全匹配

时间:2014-05-19 06:06:35

标签: string perl

如果我想在另一个字符串中找到一个特定的(常量)字符串,那么=〜是做这项工作还是更好地使用另一个运算符?我应该使用/ ^ $ /?

use constant {
MYSTR => "HGjfslT",
};

if (MYSTR =~ $rec_str){
...
}

干杯,

卡罗尔

2 个答案:

答案 0 :(得分:2)

虽然正则表达式可以做你想要的,你可能想尝试index函数,因为这是函数的特定功能,它比正则表达式更快。使用正则表达式进行更复杂的模式匹配。

if ( index( MYSTR, $rec_str ) != -1 ) {
    ....
}

在正则表达式中执行/^ $/是为了获得完全匹配。在这种情况下,请使用eq

if ( MYSTR eq $rec_str ) {
    ...
}

答案 1 :(得分:0)

=~对于此类任务完全没问题。

如果您想要完全匹配,请使用^$来匹配开头和结尾。

Demo

use constant {
MYSTR => "HGjfslT",
};
my $rec_str = "jfslT";
if (MYSTR =~ /$rec_str/){
     print "Matches!";
}
if (MYSTR =~ /^$rec_str$/){
     print "This will not match!";
}
$rec_str = "HGjfslT";
if (MYSTR =~ /^$rec_str$/){
     print "This will match!";
}