Показать сообщение отдельно
  #1 (permalink)  
Старый 03.11.2011, 22:23
Аватар для Liberg
Новичок на форуме
Отправить личное сообщение для Liberg Посмотреть профиль Найти все сообщения от Liberg
 
Регистрация: 03.11.2011
Сообщений: 1

Регулярные выражения и BackReference
Добрый день!

Задача собственно такая:

Существует строка в HEX - 02 4b 3f 02 05 00 03 2a 01 07 ff 3f
Надо выделить 6 групп
1ая - 4 байта - 02 4b 3f 02
2ая - 1 байт - 05
3ая - 1 байт - 00
4ая - 1 байт - 03 - это указывает на длину, сколько байт следующая группа
5ая - кол-во байт рассчитывается из 4ой группы
6ая -2 байта ff 3f

Собственно само выражение (то что я могу сделать)

/(\x02\x4b\x3f\x02)(.{1})(.{1})(.{1}) А вот дальше я хотел так (.{\4})(.{2})

Но тут надо еще это число 03 - HEX перевести в 10-ую сист... или так проглотит?

Вот как то так.... Подскажите как решить...
В общем хотелось бы как то одним выражением это решить. (почему то мне кажется что можно)

Еще делал так: разбивал на префикс и суффикс... сначала искал первые 4 группы потом из массива вынимал 4ую группу переводил в 10ую сист. и составлял выражение-суффикс... и т.д. но как то не кошерно..

Заранее благодарен за советы
:-)
Ответить с цитированием