- 论坛徽章:
- 0
|
让$test1按原始字符进行解释,而不是按正则表达式中的元字符解释
测试1,2是一回事, 因为"\.\*"中的转义在赋值$test1时发生, 赋值结束后$test1是一回事了.
测试1, 2没有对照作用, 因为".*"匹配qr/\.\*/也匹配qr/.*/
my $str = "a";
my $test1 = ".";
my $test2 = "\."; # 等价"."
my $test3 = q/\./; # 等价'\.'
my $test4 = qr/\./;
($str =~ /$test1/) ? (print "Yes\n") : (print "No\n"); # Yes
($str =~ /$test2/) ? (print "Yes\n") : (print "No\n"); # Yes
($str =~ /$test3/) ? (print "Yes\n") : (print "No\n"); # No 你要的匹配
($str =~ /$test4/) ? (print "Yes\n") : (print "No\n"); # No 也是你要的
测试3失败的原因, 就是\被保留了. 在正则替换后, $test1内容是'\.\*'也就是你需要的匹配
[ 本帖最后由 Lonki 于 2007-10-24 00:45 编辑 ] |
|