4

在 Ruby 中,我希望读取数据,直到到达分隔符或文件末尾。

我发现这可以通过重新定义$/$INPUT_RECORD_SEPARATOR我的分隔符来实现。然而,由于 Ruby 语言中的所有“特性”,改变全局的值来做到这一点似乎很笨拙。此外, readline 用于使用分隔符,而不是将其包含在返回的内容中。

在使用不涉及在循环中逐个字符获取值的分隔符时,是否有任何其他方法可以“读取直到”?

4

2 回答 2

5

基本上,所有readline-style 方法都IO接受分隔符字符串作为可选参数:

>> s = StringIO.new('hello from string')
=> #<StringIO:0x52bf34>
>> s.readline ' '
=> "hello "
>> s.readline ' '
=> "from "
>> s.readline ' '
=> "string"
于 2010-03-17T16:17:46.030 回答
1

您可以将记录分隔符指定为获取的参数,例如:

while line = gets("\r")
  puts line
end
于 2010-11-24T21:16:40.053 回答