Ruby: сканирование двоичного ввода-вывода для регулярных выражений

#regex #ruby #binary

#регулярное выражение #ruby #двоичный

Вопрос:

Я ищу элегантный способ сканирования ruby File , содержащего двоичные данные, для регулярного выражения.

Чтобы было ясно, мое зависание — это не путаница в применении регулярных выражений к двоичному файлу. Просто, поскольку файл является двоичным, я бы хотел избежать gets и readline . И я бы хотел избежать одновременного чтения всего файла.

Есть ли в ядре ruby функция, которая это сделает? Или мне нужно создавать свой собственный буфер и управлять им?

Ответ №1:

Ruby на самом деле не волнует, являются ли строки UTF-8, Latin-1 или двоичными. Это просто строки. Регулярные выражения работают просто отлично. Очевидно encoding , что свойство должно быть установлено соответствующим образом, и файл должен быть открыт в правильном режиме, но в остальном это не имеет большого значения.

При работе с двоичными файлами строки не имеют значения, поэтому используйте такие инструменты, как IO#read извлечение произвольных фрагментов.

Если файл не особенно большой, прочитайте весь файл сразу и работайте с ним таким образом.