Регулярные выражения и 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ую сист. и составлял выражение-суффикс... и т.д. но как то не кошерно..
Заранее благодарен за советы
:-)
|