Regexp и binary data

mayton
Дата: 22.07.2015 12:41:09
Добрый день всем.

Как-то исторически сложилось что механзм regexp применяют для процессинга
текстовых данных.

Кто-нибудь использовал regexp-s для поиска и извлечения бинарных данных.
Поделитесь сведениями. Опытом. Юзкейсами.

Спасибо.
White Owl
Дата: 22.07.2015 15:28:13
Теоретически это возможно. Языку без разницы какой у него алфавит.
Практически я не встречал такого в реальности. Бинарные массивы обычно делают структурированными и их проще обрабатывать блоками фиксированной длины. Это с текстами сложности - записи разной длины.
mayton
Дата: 22.07.2015 15:39:49
Поясню свой вопрос.

К примеру есть некий (мой собственный) формальный механизм описания двоичных файловых форматов.

К примеру для картинок (JPEG) это:

FF D8 FF E0 * 4A 46 49 46 00


Описывает заголовок и некий футер который финализирует последовательность.

Имея это описание я могу из произвольных ресурсов (pdf документ или образ диска)
извлекать картинки.

Пытаюсь придумать возможные limitations для regexp которые не дают возможность
это делать для не-текстовых данных. Кроме нуля '\0' ничего пока не придумал.

Вроде как получается можно и регулярки использовать.
White Owl
Дата: 22.07.2015 15:49:53
mayton
К примеру для картинок (JPEG) это:

FF D8 FF E0 * 4A 46 49 46 00

Тогда уж "\0xff\0xd8\0xff\0xe0.*?\0x4a\0x46\0x49\0x46\0x00".

mayton
Пытаюсь придумать возможные limitations для regexp которые не дают возможность
это делать для не-текстовых данных. Кроме нуля '\0' ничего пока не придумал.
Да и ноль тоже не будет проблемой. Если конечно возьмешь библиотеку у которой можно отключить ограничители строк и запускать на буфер фиксированной длины.
Впрочем, я о таких библиотеках не слышал. Надо будет свою писать.