0

我正在尝试编写一个 splunk 查询,该查询基本上提取分隔符“,”之间的字段并将值放入变量中。

我想提取两个逗号之间的所有内容。

,extract this@#$,
,extract this-=@#$, etc 

现在,没有一个选项可以不提供任何正则表达式而只获取, ,.

我能想到的最接近的是,.*, ..但是.*会变得贪婪并匹配其他所有内容。

遇到a 后,是否可以使用正则表达式来停止通配符匹配,

我试过了

.*$,
.*,

这没有用。

4

2 回答 2

1

在您的 splunk 搜索查询中使用以下正则表达式,它将提取所需的字段为“FIELDNAME”

| rex "(?i)\,(?P<FIELDNAME>[^ ][a-z0-9#-@$ ]+)\,\s"

考虑到“,”(字段后)之后有空间,因此我添加了“\s”,没有“\s”它也可以工作。

于 2012-07-06T11:13:28.883 回答
1

不确定 splunk,但在大多数语言中,您可以尝试

/\,([^,]*)\,/

-- 匹配所有不是逗号的字符。提取将在 \1 中。不确定您是否需要逗号前的转义符。

于 2012-05-03T02:15:05.050 回答