在 Ruby 中,我希望读取数据,直到到达分隔符或文件末尾。
我发现这可以通过重新定义$/或$INPUT_RECORD_SEPARATOR到我的分隔符来实现。然而,有了 Ruby 语言中的所有“特性”,改变全局的值来做到这一点似乎很困难。此外, readline 用于使用分隔符,但不将其包含在返回的内容中。
在使用不涉及在循环中逐个字符获取值的分隔符时,是否还有其他方法可以“读取直到”?
基本上,所有readline样式的方法都IO接受分隔符字符串作为可选参数:
>> s = StringIO.new('hello from string')
=> #<StringIO:0x52bf34>
>> s.readline ' '
=> "hello "
>> s.readline ' '
=> "from "
>> s.readline ' '
=> "string"
Run Code Online (Sandbox Code Playgroud)