2012-05-03 73 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」它也會起作用。