请教匹配的问题

请教匹配的问题

比如我有个
my $str='adad/adad';
那么如果我 if(/$str/){

}

那么就会导致成 /adad/adad/ 就会认为我的匹配有问题。这个好像用\Q\E不能解决吧。我也想过用!!这样的其他匹配的符号,但是由于不知道匹配的字符串中间有什么样的内容。所以这个方法也不行。有谁遇到这样的情况并有比较好的解决办法么?
perldoc -f index
quotemeta


QUOTE:
原帖由 bernana 于 2008-5-3 01:40 发表
比如我有个
my $str='adad/adad';
那么如果我 if(/$str/){

}

那么就会导致成 /adad/adad/ 就会认为我的匹配有问题。这个好像用\Q\E不能解决吧。我也想过用!!这样的其他匹配的符号,但是由于不知道匹配的 ...

为啥说\Q\E不能解决?

[Copy to clipboard] [ - ]
CODE:
#!/usr/bin/perl
use strict;
use warnings;
my $str = "a/a";
$_="aba/abc";
print "Matched \n" if /\Q$str\E/;



QUOTE:
<lig@romeo:~/chinaunix>$ ./meta
Matched

你自己不试试怎么知道呢?
ps:\Q \E 和quotemeta是一样的
再ps:regex 引擎是看不到\Q \E的
再再ps:用qr编译成一个regex object也是可以的
我当时只是想当然的以为他只能去掉.*?这样的匹配,所以没有测就直接发话问了。唉,主要也是现在变懒了。非常感谢解答