Мне нужно проанализировать файлы журнала, содержащие сообщения протокола 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), однако я надеялся на простой подход, используя здесь регулярное выражение, если это возможно, так как мне действительно нужна только пара теги.
Есть ли в регулярном выражении хороший способ извлечь нужные мне теги?
Ура, Виктор