【发布时间】:2021-05-20 18:44:36
【问题描述】:
我正在寻找一种优雅的方式来扫描包含正则表达式的二进制数据的 ruby File。
需要明确的是,我对将正则表达式应用于二进制文件并不感到困惑。只是因为文件是二进制文件,所以我想避免gets 和readline。而且我想避免一次读取整个文件。
ruby 核心中是否有一个函数可以做到这一点?还是我需要建立和管理自己的缓冲区?
【问题讨论】:
我正在寻找一种优雅的方式来扫描包含正则表达式的二进制数据的 ruby File。
需要明确的是,我对将正则表达式应用于二进制文件并不感到困惑。只是因为文件是二进制文件,所以我想避免gets 和readline。而且我想避免一次读取整个文件。
ruby 核心中是否有一个函数可以做到这一点?还是我需要建立和管理自己的缓冲区?
【问题讨论】:
Ruby 并不真正关心字符串是 UTF-8、Latin-1 还是二进制。它们只是字符串。正则表达式工作得很好。显然,encoding 属性应该相应地设置,并且文件以正确的模式打开,但除此之外,没什么大不了的。
处理二进制文件时,行无关紧要,因此请使用IO#read 之类的工具来拉入任意块。
如果文件不是特别大,请立即读入整个文件并以这种方式处理。
【讨论】: