我正在尝试从Ruby中的文件读取和处理行。
我有一个while循环,读取每一行。如果所有的while循环都将行分开,则可以正常工作。添加正则表达式匹配子句时,出现语法错误,意外的kEND
和语法错误,意外$ end,期望kEND
具体来说,这是“编译”的代码
def validate
invalid = 0
f = File.open(ARGV[0], "r")
while (line = f.gets)
vals = line.split(",")
end
end
if (ARGV[1] == "validate")
validate
end
而这段代码
def validate
invalid = 0
f = File.open(ARGV[0], "r")
while (line = f.gets)
vals = line.split(",")
match0 = Regexp.new(/0-9]{1,4}/)
unless (match0.match(vals[0]))
invalid ++
end
end
end
if (ARGV[1] == "validate")
validate
end
引发错误
schedule.rb:10: syntax error, unexpected kEND
schedule.rb:18: syntax error, unexpected $end, expecting kEND
最佳答案
语法错误不是由于正则表达式引起的。这是由于“++”。 Ruby没有“++”运算符。相反,您应该使用:
invalid += 1
关于ruby - 在while循环中添加内容会导致语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4924360/