ruby - 在while循环中添加内容会导致语法错误

标签 ruby while-loop syntax-error

我正在尝试从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/

相关文章:

ruby-on-rails - ruby 。 Rails 中的加载错误

Ruby:使用 Reek 作为训练工具

python - while 循环删除数据存储中的数据

php - PHP解析/语法错误;以及如何解决它们

bash - 使用bzip2将完整目录压缩到名称取决于当前日期的tar文件中

ruby-on-rails - 将事件 TCP session 负载均衡到 AWS Aurora RDS

ruby-on-rails - 如何安排 Rails 邮件在特定日期发送 (heroku)?

python - 带break的基本python while循环

While 循环中的 PHP 语法错误

php - php 代码更新错误