Шаблон разбора на основе сравнения строк - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно прочитать строки вывода, как показано ниже:

TextA Key1:Value Key2:Value (Value3, [..]) | Key3:Value, TextB Key4:Value | StringA StringB StringC Value/Value | String
  • Группы всегда разделены | (string.split () отлично работает здесь)
  • Каждая группа следует фиксированному шаблону, но отличается для каждой группы. Таким образом, в Group1 всегда есть две пары «ключ / значение» и третье значение (и данные, которые мне не нужны), последняя окружена фигурными скобками. Группа 2 всегда содержит две разделенные запятыми пары ключ / значение и т. Д.
  • Группы могут присутствовать или не присутствовать
  • Я могу определить, с какой группой я проверяю строку в группе (например, TextA).

Так что для каждой группы у меня есть своя схема для анализа и данные, которые будут возвращены. Конечно, это можно сделать с помощью множества длинных предложений if / else. Решение, которое очень просто и работает, но не оптимально.

Однако я не могу понять, как решить эту более элегантную задачу в Python.

...