У меня есть три типа журналов, которые я хотел бы проанализировать:
Сообщение № 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>[^\)]+)\)
... для поиска имен пользователей (это могут быть адреса электронной почты, отдельные слова и т. Д.).Но опять же, я не уверен, как связать его с двумя другими именованными группами.
Как мне совместить эти три совпадения, чтобы они нашли их в трех сообщениях выше?