2015-05-29 85 views
0

我剛剛安裝了Ruby ...我通常更多的是C#人;但我想爲網頁設計學習它。它正在工作;然後突然(沒有改變之後)它停止工作 - 而是提供錯誤。Ruby:未終止的正則表達式符合文件末尾

以下是我的(Windows)CMD行的錯誤報告。下面是我試圖運行的代碼(它可能有語法錯誤,我對Ruby還是很新的)。

Microsoft Windows [Version 6.3.9600] 
(c) 2013 Microsoft Corporation. All rights reserved. 

C:\Users\Alex>cd C:/Users/Alex/Desktop 

C:\Users\Alex\Desktop>ruby r.rb 
r.rb:1: unterminated regexp meets end of file 

C:\Users\Alex\Desktop> 

代碼我試圖運行:

numX = 0 // where it begins 

for numX in 0..1000 do 
    if numX % 3 == 0 || numX % 5 == 0 
     puts "Number: #numX" 
    end 
end 
+3

'''''在ruby中'''afaik不是「評論的開始」,#'是。 –

+0

這樣做!來自C#的討厭習慣!哈哈。謝謝。 – user3400029

回答

3

它看起來像你與那些從C#混合了紅寶石評論!在Ruby中的註釋通過哈希標記分隔:#

正斜線用來分隔Ruby的正則表達式,這就是爲什麼你從分析器收到這個錯誤:

/hello/.match('hello') # => #<MatchData "hello"> 
/hell/.match('hello') # => #<MatchData "hell"> 
//.match('hello') # => #<MatchData ""> 
// == Regexp.new('') # => true 

解析器認爲,正則表達式是「未終止的」,因爲它將第一個/解釋爲除法運算符(因爲它在數字文字後面)並且第二個/作爲正則表達式的開頭。如果你在文件末尾添加/,你會注意到Ruby會試圖用正則表達式分割0,並且你會合理地得到以下錯誤:TypeError: Regexp can't be coerced into Fixnum

+0

是的,Ruby讀取'//'爲正則表達式,但爲什麼「未終止」? –

+0

解釋者認爲第一個'/'標記除了數字之後就表示分割。 – fny

+0

這非常合理。謝謝。 –

相關問題