В моем проекте мне нужно использовать регулярное выражение для поиска некоторых данных в объекте TMemoryStream размером 400 Мб. Я проверяю новое regularexpresion внутри delphi xe3, но функция соответствует только полученным строковым параметрам, а не rawbytestring или указателю. Я определил рисунок на этом пути ок:Использование Regex в Delphi Xe с rawbytestring
MyPatt:="\x8A\x8A(..)\x8A"
Проблема заключается в том, как найти в двоичном RAWDATA Я tryied с
TRegex.Match((MyStreamObject.Memory)^,MyPatt);
, но не успеха. я стараюсь с этим и не Sucess слишком
TRegex.Match(String((MyStreamObject.Memory)^),MyPatt);
BCZ проблема, если rawbinary объект начинаются с 0x00 обрезано.
Как я могу сопоставить выражение регулярных выражений с помощью указателя или rawbinarystring.?
Я бы предложил оставить эту последнюю строку в вашем вопросе «Любая идея или любая существующая библиотека, которая может мне помочь?» потому что вы уже задали свой вопрос в предыдущем предложении, а «существующие библиотеки» - вне темы. Извините, я не знаком с предметом, чтобы дать ответ. –
@JerryDodge, Спасибо за поездку, главный пост отредактирован. –
Вы должны использовать блок 'RegularExpressionsCore', поскольку он использует UTF8. Цитата из ['help'] (http://www.regular-expressions.info/delphi.html):' 'Если вы имеете дело с данными UTF-8, используйте модуль RegularExpressionsCore, чтобы избежать ненужных UTF-8 до UTF -16 до UTF-8. ". –