#regex #ruby #binary
#регулярное выражение #ruby #двоичный
Вопрос:
Я ищу элегантный способ сканирования ruby File
, содержащего двоичные данные, для регулярного выражения.
Чтобы было ясно, мое зависание — это не путаница в применении регулярных выражений к двоичному файлу. Просто, поскольку файл является двоичным, я бы хотел избежать gets
и readline
. И я бы хотел избежать одновременного чтения всего файла.
Есть ли в ядре ruby функция, которая это сделает? Или мне нужно создавать свой собственный буфер и управлять им?
Ответ №1:
Ruby на самом деле не волнует, являются ли строки UTF-8, Latin-1 или двоичными. Это просто строки. Регулярные выражения работают просто отлично. Очевидно encoding
, что свойство должно быть установлено соответствующим образом, и файл должен быть открыт в правильном режиме, но в остальном это не имеет большого значения.
При работе с двоичными файлами строки не имеют значения, поэтому используйте такие инструменты, как IO#read
извлечение произвольных фрагментов.
Если файл не особенно большой, прочитайте весь файл сразу и работайте с ним таким образом.