找回密码
 注册
查看: 8021|回复: 0

perl语言正则表达式绑定操作符,=~

[复制链接]
发表于 2011-11-14 20:41:56 | 显示全部楼层 |阅读模式
对$_进行匹配只是默认的行为,使用绑定操作符(=~)将告诉Perl 将右边的模式在左边的字符串上进行匹配,而非对$_匹配。
例如:
my $some_other = “I dream of betty rubble.”;
if($some_other =~ /\brub/){
print “Aye, there’s the rub.\n”;
}
第一次见到绑定操作符(binding operator:=~),可能觉得它有些像赋值操作符,但它不是。其含义是:“这个模式默认将对
$_进行匹配,但此时将对左边的字符串进行匹配”。如果没有绑定操作符,则此表达式将对$_匹配。
在下面的例子中(有些不寻常),$likes_perl 将根据用户的输入而得到一个boolean 值。它有一些quick-and-ditry,因为输入
行很快就被丢弃了。这段代码将读入一行,由右边的模式进行匹配,然后丢弃此输入◆。它没有使用$_。
◆输入的字符不会自动存储在$_中,除非行输入操作(<STDIN>)单独出现在while 循环的条件判断部分。
print “Do you like Perl? ”;
my $likes_perl = (<STDIN> =~ /\byes\b/i);
… #Times passes…
if($likes_perl){
print “You said earlier that you like Perl, So… \n”;

}
由于绑定操作有非常高的优先级,因此,模式测试部分的括号不是必需的,下面的代码和上面代码的含义是一样的。它将
测试部分的结果(而非行输入)返回给变量$likes_perl:
my $likes_perl = <STDIN> =~ /\byes\b/i;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-21 20:20 , Processed in 0.024559 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表