regex и byte[]
От: Аноним  
Дата: 29.05.07 14:40
Оценка:
Всем привет. Все-таки как правильно парсить байтовый массив через regex?
Использование Encoding.GetString(buffer) корректного ничего не дает так как превращает байты, находящиеся за пределами таблицы кодировки в ???. В частности есть сигнатура JPEG выглядящая как \xff\xd8\xff.*JFIF. Regex.IsMatch(buffer) в упор не видит в jpeg-овском буффере этой последовательности.
Re: regex и byte[]
От: rameel https://github.com/rsdn/CodeJam
Дата: 29.05.07 15:45
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Всем привет. Все-таки как правильно парсить байтовый массив через 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>>
Re: regex и byte[]
От: Sinclair Россия https://github.com/evilguest/
Дата: 01.06.07 05:46
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Всем привет. Все-таки как правильно парсить байтовый массив через regex?

Ответ такой же, как и на вопрос "как правильно забивать гвозди микроскопом".

А>Использование Encoding.GetString(buffer) корректного ничего не дает так как превращает байты, находящиеся за пределами таблицы кодировки в ???.

Правильно делает.
А>В частности есть сигнатура JPEG выглядящая как \xff\xd8\xff.*JFIF. Regex.IsMatch(buffer) в упор не видит в jpeg-овском буффере этой последовательности.
Правильно делает.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.