2012-03-28 240 views
0

我是ruby的新手,它可能是一些基本的东西,但它只是让我发疯。与正则表达式捕获的Ruby字符串比较

以下情况如何?

(rdb:1) display $2 
    26: $2 = "Alien" 

    (rdb:1) display $2 == "Alien" 
    27: $2 == "Alien" = false 

    (rdb:1) display $2.equal? "Alien" 
    28: $2.equal? "Alien" = false 

    (rdb:1) display $2.strip.chomp.equal? "Alien" 
    29: $2.strip.chomp.equal? "Alien" = false 

    (rdb:1) display $2.class 
    30: $2.class = String 

红宝石1.9.3p125,Rails的3.1.0,1.1.8黄瓜

+0

这是否发生在IRB等,或只是在红宝石调试? – 2012-03-28 06:09:53

+0

也许你应该使用'('和')'来确定你想要检查的内容? Ruby试图猜测(这里不是正确的单词)你想说什么,但是使用'('使其更清晰。在Rubyy-debug中,并且在不调试的情况下运行代码本身时 – mliebelt 2012-03-28 06:11:06

+0

@AndrewMarshall – Grozz 2012-03-28 06:17:15

回答

0
(rdb:1) display $2[0] 
2: $2[0] = " 

谜解决。

+1

一般来说,当一个“显而易见”的字符串比较失败,我看...... 1.第一个字符,2.最后一个字符,和3.长度,看字符串中是否有一些非打印字符或其他一般的古怪。 – 2012-03-28 06:28:49