【发布时间】:2019-10-12 20:55:53
【问题描述】:
我正在将用户 ID 与正则表达式(在 Splunk 中)匹配并且遇到了混合结果:
正则表达式 ^[^=\n]*
Splunk 提取 ^[^=\n]*=(?P<user>[^ ]+)
规则/测试数据
- 名.姓
- A123456
- 域名\名.姓
- 域名\A123456
- 姓,名
- 姓,名首字母
日志样本
Oct 3 23:33:00 2019 wc1 authmgr[4111]: <522008> <4904> <NOTI> <wc1 123.134.128.122> User Authentication Successful: username=lastname, firstname MAC=d0:c6:25:79:e7:c6 IP=192.168.16.26 role=Authenticated VLAN=600 AP=43:4a:e3:c9:ec:0c SSID=corpnet AAA profile=aaaprof auth method=802.1x auth server=authserv
Oct 3 22:42:27 2019 wc1 authmgr[4111]: <522008> <4111> <NOTI> <wc1 123.134.128.122> User Authentication Successful: username=lastname, firstname initial MAC=b2:09:cf:4c:80:1e IP=192.168.16.27 role=Authenticated VLAN=600 AP=34:fc:b2:c1:be:dc SSID=corpnet AAA profile=aaaprof auth method=802.1x auth server=authserv
预期
username=lastname, firstname
username=lastname, firstname initial
匹配在 regex.com 上有效,但 lastname, firstname 在 Splunk 中不匹配。似乎当前的正则表达式在逗号处停止。
【问题讨论】:
-
没有示例数据很难提供帮助。您的代码看起来像是在期待“
name=value”,但您的测试数据都没有。请edit您的问题提供实际示例输入数据和预期输出数据。我们需要一个minimal reproducible example。 -
它不会在逗号处停止,它会在第一个空格处停止(
lastname,之后) -
抱歉,没错。
标签: regex