使用正则表达式解析 Cisco 系统日志
Parsing Cisco System Logs with Regex
我要解析三种类型的日志:
消息 #1: 为移动设备创建的长度为 (253) 的用户名条目(随机@somewhere.org)aa:aa:aa:aa:aa:aa
预期匹配:
- 随机@somewhere.org
- aa:aa:aa:aa:aa:aa
消息 #2: 移动用户名条目 (hello) 已删除 aa:aa:aa:aa:aa:aa
预期匹配:
- 你好
- aa:aa:aa:aa:aa:aa
消息 #3 来宾用户使用用户帐户登录 (randomnonexistentuser) MAC 地址 aa:aa:aa:aa:aa:aa, IP 地址 127.0.0.1.
预期匹配:
- 随机不存在的用户
- aa:aa:aa:aa:aa:aa
- 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>[^\)]+)\)
...查找用户名(可以是电子邮件地址、单个单词等)。但同样,我不确定如何将它与其他两个命名组联系起来。
如何将这三个匹配项协调在一起,以便在上面的三个消息中找到它们?
像这样的东西应该会给你命名组中的所有东西:https://regex101.com/r/qFE95M/15
我要解析三种类型的日志:
消息 #1: 为移动设备创建的长度为 (253) 的用户名条目(随机@somewhere.org)aa:aa:aa:aa:aa:aa
预期匹配:
- 随机@somewhere.org
- aa:aa:aa:aa:aa:aa
消息 #2: 移动用户名条目 (hello) 已删除 aa:aa:aa:aa:aa:aa
预期匹配:
- 你好
- aa:aa:aa:aa:aa:aa
消息 #3 来宾用户使用用户帐户登录 (randomnonexistentuser) MAC 地址 aa:aa:aa:aa:aa:aa, IP 地址 127.0.0.1.
预期匹配:
- 随机不存在的用户
- aa:aa:aa:aa:aa:aa
- 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>[^\)]+)\)
...查找用户名(可以是电子邮件地址、单个单词等)。但同样,我不确定如何将它与其他两个命名组联系起来。
如何将这三个匹配项协调在一起,以便在上面的三个消息中找到它们?
像这样的东西应该会给你命名组中的所有东西:https://regex101.com/r/qFE95M/15