我正在尝试编写一个splunk查询,它基本上在分隔符“,”之间提取字段,并将值放在变量中。
我想在两个逗号之间提取所有内容。
,extract this@#$,
,extract this-=@#$, etc
现在,没有选项可以不提供任何正则表达式,只需在, ,
之间获取所有内容。
我认为最近的是,.*,
..然而.*
会变得贪婪并与其他所有东西相匹配。
是否有正则表达式可用于在遇到,
后停止通配符匹配?
我试过
.*$,
.*,
哪个不起作用。
答案 0 :(得分:1)
不确定splunk,但在大多数语言中,您可以尝试
/\,([^,]*)\,/
- 匹配所有不是逗号的字符。提取将在\ 1。不确定你是否需要在逗号前面的转义。
答案 1 :(得分:1)
在您的splunk搜索查询中使用以下正则表达式,它会将所需的文件提取为“FIELDNAME”
| rex "(?i)\,(?P<FIELDNAME>[^ ][a-z0-9#-@$ ]+)\,\s"
考虑到“,”(字段之后)有空格因此我添加了“\ s”,没有“\ s”它也可以工作。