Единый RegEx для разбора этого формата журнала? - PullRequest
1 голос
/ 18 декабря 2009

Я пытаюсь осмыслить возможность анализа файла журнала с помощью одного RegEx в .NET

Что затрудняет, так это то, что в файле журнала есть элементы, которые могут (но не всегда) занимать несколько строк, и что каждый файл журнала может фактически содержать несколько «журналов». Пример формата:

log:  
  event 1  
  event 2  
    additional information  
  event 3  
log:  
  event 1  
    additional information  
    more additional information  
  event 2  
    additional information  

Необходимость в том, чтобы здесь иметь возможность различать, какие события принадлежат какому журналу и иметь также дополнительную информацию. Конечно, я мог просто захватывать события ... Я не мог захватывать события с дополнительной информацией, не говоря уже о группировании их в записи по журналу:

Я был бы признателен за информацию, а не за решение, чтобы я мог учиться. Я думаю, мой вопрос: это должно быть возможно? Это уже было сделано с парсером, я просто пытался найти альтернативные методы.

Ответы [ 3 ]

2 голосов
/ 18 декабря 2009

Почему вы пытаетесь использовать одно регулярное выражение для этого? Используйте правильный парсер.

Регулярные выражения превосходны для простых манипуляций со строками, но как только вы попадаете на более сложные вещи, реальный анализатор становится намного лучше.

2 голосов
/ 18 декабря 2009

Кажется, что было бы проще и прозрачнее анализировать вручную, чем пытаться сделать это в RegEx. Шаблон довольно прост.

0 голосов
/ 18 декабря 2009

Было бы возможно (и довольно просто) извлекать каждую запись журнала отдельно, используя шаблон, но не разбивать совпадение на группы информации, используя захваты в том же шаблоне.

Что вам нужно сделать, это создать шаблон для информационной строки (в основном, пробел, за которым следует что-то еще до конца строки), и повторить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...