REQ:协助Splunk-Rex查询

时间:2019-03-24 21:38:05

标签: regex splunk rex

我在rex查询中遇到了一些问题,其中一位数字日期提供了错误的结果,而两位数字日期提供了正确的结果。

这些是我正在查询的日志条目:

Mar  7 14:24:29 10.52.176.215 Mar  7 12:24:29 963568 - Melbourne details-cable-issue - vdvfvfv

Mar 20 09:52:55 10.52.176.215 Mar 20 07:52:55 963569 - Brisbane cable-issue

这是查询:

^(?:[^ \n]* ){7}(?P<extension>[^ ]+)[^\-\n]*\-\s+(?P<location>\w+)

对于3月7日条目,我的查询给了我组扩展名“ 7”,而我3月20日条目给了我一个组扩展名“ 963569”。

有人可以阐明我的查询来确认一个两位数的日期吗? #7 vs 20

谢谢:)

1 个答案:

答案 0 :(得分:0)

第一个字符串中有几个连续的空格(它们看起来像填充空格),并且由于您仅匹配(?:[^ \n]* )中的一个空格,因此会出现不匹配的情况。

我建议匹配第一组中的1个或多个空格并调整限制量:

^(?:[^ \n]* +){5}(?P<extension>[^ ]+)[^-\n]*-\s+(?P<location>\w+)
            ^  ^

请参见regex demo