2012-05-03 74 views
0

我想写一个基本上提取分隔符“,”之间的字段,并将该值放入一个变量的splunk查询。通配符点星忽略分隔符

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

,extract [email protected]#$, 
,extract [email protected]#$, etc 

现在,没有一个选项,不给任何正则表达式和刚刚获得, ,之间的一切。

所以最接近的我可以认为是,.*, ..但.*会变得贪婪和匹配其他所有东西。

在遇到,之后,我可以使用正则表达式来阻止通配符匹配吗?

我试图

.*$, 
.*, 

,没有工作。

+0

试试'。* ?,'。在大多数正则表达式中,之后*使其非贪婪。我没有经验丰富的经验,所以我不能证实你的例子就是这种情况。 –

回答

1

不知道有关的Splunk但在大多数语言中,你可以尝试

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

- 匹配的是不是一个逗号所有字符。提取将在\ 1。不知道你是否需要在逗号前面的逃脱。

1

使用以下在Splunk的搜索查询的正则表达式,它会提取所需提交的“FIELDNAME”

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

后“”(后场)还有空间,因此我添加了‘\ S’考虑,没有“\ s”它也会起作用。