Ruby:未终结的regexp符合文件末尾

时间:2015-05-29 04:40:46

标签: ruby

我刚刚安装了Ruby ...我通常更像是一个C#家伙;但我想学习它用于网页设计。它正在运作;然后突然(在没有改变之后)它停止工作 - 改为提供错误。

以下是我(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

1 个答案:

答案 0 :(得分:3)

看起来你正在将Ruby评论与来自C#的评论混在一起! Ruby中的注释由哈希标记分隔:#

正斜杠用于在Ruby中分隔正则表达式,这就是你从解析器中得到错误的原因:

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

解析器认为正则表达式是“未终止的”,因为它将第一个/解释为除法运算符(因为它出现在一个数字文字之后),第二个/作为一个开头。正则表达式。如果你在文件的末尾加上/,你会发现Ruby会尝试将0除以正则表达式,你会合理地得到以下错误:{{1} }。