在 Ruby 中,我希望读取数据,直到到达分隔符或文件末尾。
我发现这可以通过重新定义$/
或$INPUT_RECORD_SEPARATOR
我的分隔符来实现。然而,由于 Ruby 语言中的所有“特性”,改变全局的值来做到这一点似乎很笨拙。此外, readline 用于使用分隔符,而不是将其包含在返回的内容中。
在使用不涉及在循环中逐个字符获取值的分隔符时,是否有任何其他方法可以“读取直到”?
基本上,所有readline
-style 方法都IO
接受分隔符字符串作为可选参数:
>> s = StringIO.new('hello from string')
=> #<StringIO:0x52bf34>
>> s.readline ' '
=> "hello "
>> s.readline ' '
=> "from "
>> s.readline ' '
=> "string"
您可以将记录分隔符指定为获取的参数,例如:
while line = gets("\r")
puts line
end