我需要有关正则表达式的帮助,而我仍在尝试自学。我已经为此打了几个小时。我正在尝试通过syslog服务器过滤事件日志中的登录事件。我只想捕获实际的用户登录,而不捕获其他所有通过的登录。
计算机和用户帐户位于显示“ ACCOUNT NAME:”的行上。计算机帐户的名称末尾包含一个$,我需要过滤掉这些帐户,同时接受结尾没有$的帐户。
日志如下所示:
登录类型:3
模拟级别:模拟
新登录: 安全ID:S-1-5-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
帐户名:COMPUTERNAME $
帐户域:(随机空格)域名
登录ID:0xXXXXXXXXX
登录GUID:{XXXXXXXXXXXXX}
工艺信息: 进程ID:0x0 进程名称:-
网络信息: 工作站名称:-
源网络地址:192.168.0.x
源端口:000000
任何可以提供帮助的regex pro?谢谢
答案 0 :(得分:1)
我不是regex专业人士,但我可以为您解决此特定问题。使用look ahead
过滤掉美元符号,如下所示:
(?!.*\$)
这被称为negative look ahead
'(?!
',并且它会多次'.*'
查找任何字符,直到出现'$
'符号为止。如果找到美元符号,则没有匹配项。
请注意,美元符号已在正则表达式中转义。
修改:
要匹配帐户名而不是美元符号,它变为(假定帐户名不包含空格):
(?!.*\$)Account Name:\s*(\w+)
立即获取Group 1.
中的帐户
答案 1 :(得分:1)