用于事件日志4624登录类型和帐户名的正则表达式

时间:2018-10-25 21:33:37

标签: regex

我需要有关正则表达式的帮助,而我仍在尝试自学。我已经为此打了几个小时。我正在尝试通过syslog服务器过滤事件日志中的登录事件。我只想捕获实际的用户登录,而不捕获其他所有通过的登录。

计算机和用户帐户位于显示“ ACCOUNT NAME:”的行上。计算机帐户的名称末尾包含一个$,我需要过滤掉这些帐户,同时接受结尾没有$的帐户。

日志如下所示:

  

登录类型:3

     

模拟级别:模拟

     

新登录:     安全ID:S-1-5-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     

帐户名:COMPUTERNAME $

     

帐户域:(随机空格)域名

     

登录ID:0xXXXXXXXXX

     

登录GUID:{XXXXXXXXXXXXX}

     

工艺信息:     进程ID:0x0     进程名称:-

     

网络信息:     工作站名称:-

     

源网络地址:192.168.0.x

     

源端口:000000

任何可以提供帮助的regex pro?谢谢

2 个答案:

答案 0 :(得分:1)

我不是regex专业人士,但我可以为您解决此特定问题。使用look ahead过滤掉美元符号,如下所示:

(?!.*\$)

这被称为negative look ahead'(?!',并且它会多次'.*'查找任何字符,直到出现'$'符号为止。如果找到美元符号,则没有匹配项。

请注意,美元符号已在正则表达式中转义。

修改

要匹配帐户名而不是美元符号,它变为(假定帐户名不包含空格):

(?!.*\$)Account Name:\s*(\w+)

立即获取Group 1.中的帐户

答案 1 :(得分:1)

尝试一下:

Account Name:\s*([^\s\$]+[^\s\$]$)

https://regex101.com/r/0W8xVg/3