Разбор протокола FIX в регулярном выражении?

Мне нужно проанализировать файлы журнала, содержащие сообщения протокола FIX.

Каждая строка содержит информацию заголовка (отметка времени, уровень ведения журнала, конечная точка), за которой следует полезная нагрузка FIX.

Я использовал регулярное выражение для разбора информации заголовка на именованные группы. Например:

 <?P<datetime>\d{2}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}.\d{6}) (?<process_id>\d{4}/\d{1,2})\s*(?P<logging_level>\w*)\s*(?P<endpoint>\w*)\s*

Затем я перехожу к самой полезной нагрузке FIX (^ A - разделитель между каждым тегом) например:

8=FIX.4.2^A9=61^A35=A...^A11=blahblah...

Мне нужно извлечь определенные теги из этого (например, «A» из 35 = или «blahblah» из 11 =) и игнорировать все остальное - в основном мне нужно игнорировать все, что находится до "35 = A", и все, что находится после "11 = blahblah", затем игнорировать все после этого и т. Д.

Я знаю, что есть библиотеки, которые могли бы анализировать каждый тег (http://source.kentyde.com/fixlib/overview), однако я надеялся на простой подход, используя здесь регулярное выражение, если это возможно, так как мне действительно нужна только пара теги.

Есть ли в регулярном выражении хороший способ извлечь нужные мне теги?

Ура, Виктор

​​
6
задан victorhooi 21 November 2011 в 05:35
поделиться