Всем привет. Все-таки как правильно парсить байтовый массив через regex?
Использование Encoding.GetString(buffer) корректного ничего не дает так как превращает байты, находящиеся за пределами таблицы кодировки в ???. В частности есть сигнатура JPEG выглядящая как \xff\xd8\xff.*JFIF. Regex.IsMatch(buffer) в упор не видит в jpeg-овском буффере этой последовательности.
Здравствуйте, <Аноним>, Вы писали:
А>Всем привет. Все-таки как правильно парсить байтовый массив через regex?
Он для этого и не предназначен
А>Использование Encoding.GetString(buffer) корректного ничего не дает так как превращает байты, находящиеся за пределами таблицы кодировки в ???.
А вы что ожидали. Для представления байтового массива в строковом виде есть формат base64 (Convert.ToBase64String/FromBase64String) или 16-ый, например
StringBuilder sb = new StringBuilder();
foreach (byte value in new byte[] { 0xFF, 0xD8, 0xFF })
sb.Append(value.ToString("X2"));
А>В частности есть сигнатура JPEG выглядящая как \xff\xd8\xff.*JFIF. Regex.IsMatch(buffer) в упор не видит в jpeg-овском буффере этой последовательности.
Ну-с, соответственно, переведи все байты в 16-ичный строковый формат и парси как тебе нравиться
ЗЫ. А просто перебрать массив нельзя ?!
... << RSDN@Home 1.2.0 alpha rev. 677>>
Здравствуйте, <Аноним>, Вы писали:
А>Всем привет. Все-таки как правильно парсить байтовый массив через regex?
Ответ такой же, как и на вопрос "как правильно забивать гвозди микроскопом".
А>Использование Encoding.GetString(buffer) корректного ничего не дает так как превращает байты, находящиеся за пределами таблицы кодировки в ???.
Правильно делает.
А>В частности есть сигнатура JPEG выглядящая как \xff\xd8\xff.*JFIF. Regex.IsMatch(buffer) в упор не видит в jpeg-овском буффере этой последовательности.
Правильно делает.
... << RSDN@Home 1.2.0 alpha rev. 677>>