Разбор системных журналов Cisco с помощью Regex - PullRequest
0 голосов
/ 13 марта 2019

У меня есть три типа журналов, которые я хотел бы проанализировать:

Сообщение № 1: Запись имени пользователя (random@somewhere.org) длиной (253), созданная для мобильного телефона:aa: aa: aa: aa: aa

Ожидаемые соответствия:

  • random@somewhere.org
  • aa: aa: aa:аа: аа: аа

Сообщение № 2: Запись имени пользователя (привет) удалена для мобильного телефона аа: аа: аа: аа: аа: аа

Ожидаемые совпадения:

  • привет
  • аа: аа: аа: аа: аа: аа

Сообщение #3 Гость вошел в систему с учетной записью пользователя (randomnonexistentuser) MAC-адрес aa: aa: aa: aa: aa: aa, IP-адрес 127.0.0.1.

Ожидаемые совпадения:

  • randomnonexistentuser
  • аа: аа: аа: аа: аа: аа
  • 127.0.0.1

Пока у меня есть эторегулярное выражение для определения MAC-адресов (помеченных как мобильные в двух из трех примеров): https://regex101.com/r/qFE95M/14

У меня также есть это регулярное выражение ...

(?P<IP_address>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})

... для поискаIPадрес.Однако я не уверен, как сделать эту именованную группу необязательной и связать ее с частью MAC-адреса.

Наконец, у меня есть это регулярное выражение ...

^[^\(\n]*\((?P<user_account>[^\)]+)\)

... для поиска имен пользователей (это могут быть адреса электронной почты, отдельные слова и т. Д.).Но опять же, я не уверен, как связать его с двумя другими именованными группами.

Как мне совместить эти три совпадения, чтобы они нашли их в трех сообщениях выше?

1 Ответ

1 голос
/ 13 марта 2019

что-то вроде этого должно дать вам все в именованной группе: https://regex101.com/r/qFE95M/15

...