新手上路,字符串比较问题?

新手上路,字符串比较问题?

比较2个字符串,看是否相同,不区分大小写,代码如下:


$str1 = 'book';
$str2 = 'book';

if ( $str1 =~ /^$str2$/i ) {
    print "equal!\n";
}
else {
         print ("not equal!\n");
}


哪位大哥可以解释下,小弟用红色标识位置的含义,^,$,谁应该和谁连接在一起?

谢谢!
if $str1 eq $str2
http://man.ddvip.com/web/perl/perl6.htm


QUOTE:
原帖由 ly5066113 于 2008-8-29 11:29 发表
if $str1 eq $str2

这个循环的意思我明白,关键是 ^$str2$ ,这个 ^,$,$,怎么2个$,  ^表示以谁开始,最后面一个$表示以谁结尾,是这个意思吗?
$str2 = 'book';


QUOTE:
原帖由 changejun 于 2008-8-29 11:31 发表
http://man.ddvip.com/web/perl/perl6.htm

谢谢这位兄弟,已经找到答案。

授之以鱼,不如授之以渔!

十分感谢!
lz不是需要相等。赫赫
if ( $str1 =~ /^$str2$/i ) {

/^$str2$/i中
^匹配开头,$str2是指的把这个内容换成$str2的值,即$str2是个变量,$匹配结尾
正则中的第一个$是scalar变量的标志


QUOTE:
原帖由 forlorngenius 于 2008-8-29 13:13 发表
lz不是需要相等。赫赫

开始没看到不区分大小写。就算不区分,最多这样:
lc($str1) eq lc($str2)

前2天看贴时,看到这句话,感觉很有道理:
Some people, when confronted with a problem, think “I know, I'll use regular expressions.” Now they have two problems.
                                                                                         --Jamie Zawinski, in comp.emacs.xemacs
不要滥用正则表达式。