Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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ую сист. и составлял выражение-суффикс... и т.д. но как то не кошерно..

Заранее благодарен за советы
:-)
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2011, 07:28
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

То что вы написали имеет лишь отдалённое сходство с regeхp и javascript .
Для чего вы хотите произвести данную операцию?

Как то так, если какие ошибки - я не виноватый, мне спатеньки пора.
var str='02 4b 3f 02 05 00 03 2a 01 07 ff 3f';
var n=parseInt(str.slice(18,20),16)*3-1;
var arr=[
str.slice(0,11),
str.slice(12,14),
str.slice(15,17),
str.slice(18,20),
str.slice(21,21+n),
str.slice(22+n)
]
alert(arr.join('\n'));

//если очень хочется регулярку, то примерно такое убожество, в 10 раз медленнее наверняка:

var reg=new RegExp('(.{11}).(..).(..).(..).(.{'+n+'}).(.*)');
alert(reg.exec(str).join('\n'))
__________________
29375, 35

Последний раз редактировалось Aetae, 04.11.2011 в 08:06.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
регулярные выражения igsavenko Серверные языки и технологии 12 20.05.2013 14:42
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08
регулярные выражения js smollvrn Javascript под браузер 4 18.10.2010 11:32
Регулярные выражения работают через раз San4ezy Общие вопросы Javascript 5 05.10.2010 01:50
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35