perl中if的匹配条件

时间:2025-02-11 07:03:21

if的匹配条件语法 : if ( $a =~ m/ ... /){ ... }

通常我们会看到这样的语句:if ( / ... / ){ ... }

没有变量$a, 其实不然,在仔细看看,这句应该是在读取一个文件之类的,实质上有变量$_,当$_作为变量时,我们可以在条件中省略,因为if知道谁是变量 。


例如:

$a = "char22";

if(my ($a) = $a =~ /char(\d+)/){
    print ($a);
}

如果是在读取<FD>,完全可以写成:


if(my ($a) = /char(\d+)/){
    print ($a);
}

因为此时匹配的变量为$_。


注意输出结果为:22.

相当于 变量$a 获取$1的值(捕捉第一个小括号)。


请看下面:

$a = "dfd12";

if(my ($a) = $a =~ /dfd(\d)(\d+)/){
    print ($a);
}

结果为:1。