我正在尝试从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:语法错误,意外的kEND
schedule.rb:18:语法错误,意外$ end,期待kEND
答案 0 :(得分:3)
语法错误不是由正则表达式引起的。这是由于“++”。 Ruby没有“++”运算符。相反,你应该使用:
invalid += 1
答案 1 :(得分:1)
此外,你的正则表达式(字符类)中缺少一个括号。
/0-9]{1,4}/
应该阅读
/[0-9]{1,4}/
答案 2 :(得分:0)
没有C风格的递增/递减运算符。而是使用
invalid = invalid + 1
或
invalid += 1