2012-03-28 53 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